表: 學生(*學號,姓名,性別,年齡,專業) create table student( sno char(13) primary key, sname varchar(20) not null, ssex char(2), sage smallint, sdept varchar(30) ); 課 ...
表:
學生(*學號,姓名,性別,年齡,專業) create table student( sno char(13) primary key, sname varchar(20) not null, ssex char(2), sage smallint, sdept varchar(30) ); 課程(*課程號,課程名,學分) create table course( cno char(4), cname varchar(40) not null, ccredit smallint not null, 我們可以將欄位的定義和主外鍵的定義分開 primary key (cno) ); 選課(學號,課程號,分數) create table sc( sno char(13), cno char(4), grade smallint, primary key (sno,cno),--定義聯合主鍵 foreign key (sno) references student(sno), constraint FK_sc_cno foreign key (cno) references course(cno) ); 創建一個用戶表 create table tb_user( userid int identity(1,1),【設置整型欄位自動增長】 username varchar(20) not null, userpass varchar(16) not null, groupid int ); 創建用戶組表 create table tb_group( groupid int primary key identity(1001,1), groupname varchar(30) not null );
insert(增加)
使用 insert 語句向表中插入數據。 insert into table [(column [, column...])] values (value [, value...]); 插入的數據應與欄位的數據類型相同。 舉例: 方法一:不指定列,插入所有欄位 insert into student values('2010040','kangji','男',22,'電腦科學學院');--SQLServer總是嘗試轉化為相同的類型 insert into student values(20100402,'張三','男',22,'電腦科學學院'); 方法二:指定列,插入部分欄位 insert into student (sno,sname) values('20100403','李四'); 註意: 1) 數據的大小應在列的規定範圍內,例如:不能將一個長度為80的字元串加入到長度為40的列中。 2) 在values中列出的數據位置必須與被加入的列的排列位置相對應。 3) 字元和日期型數據應包含在單引號中。 4) 插入空值,不指定或insert into table value(null) 註意:在SQLServer 中,''=null; ' '=null; ' '=null; 批量插入數據 insert into u(username,userpass) select sname,sno from student where ssex='男';
update(修改)
使用 update語句修改表中數據。 update 表名 set 列名=表達式[,列名=表達式 ...] [where where_definition] update語法可以用新值更新原有表行中的各列。 set子句指示要修改哪些列和要給予哪些值。 update student set sname='康吉' where sno='20100401'; update student set sname='康吉',sage=23 where sno='20100401'; where子句指定應更新哪些行。如沒有where子句,則更新所有的行。 修改還有 null 值的數據 is null select * from student where ssex is null;
delete(刪除)
使用 delete語句刪除表中數據。
delete from 表名 [where where_definition]
如果不使用where子句,將刪除表中所有數據。
delete語句不能刪除某一列的值(可使用update對值置null)
使用delete語句僅刪除記錄,不刪除表本身。如要刪除表,使用【drop table表名】語句。
同insert和update一樣,從一個表中刪除記錄將引起其它表的參照完整性問題,在修改資料庫數據時,頭腦中應該始終不要忘記這個潛在的問題。
刪除表中全部數據
delete table 表名;
刪除表中指定數據
delete from student where xh='A001';
級聯刪除和更新
create table class( id int primary key, name varchar(10) ); create table student( id int primary key, class_id int references class(id) on delete/update cascade ); alter table student add constraint FK_classid foreign key (class_id) references class(id) on update cascade on delete cascade