1.check約束 範圍
-- 建表時定義性別取值爲“男或女” 默認爲“男”
-- 年齡在14到65之間(14,65)
-- in (值1,值2,值3...值n) 屬於值1到值n其中之一(詳見聚集函數)create table Student(
Sno Char(7) primary key,--學號
Sname Char(10) not null,--學生姓名
Ssex Char(2) check(Ssex in('男','女')) default '男'not null,--性別
Sage Smallint check(Sage>14 and Sage<65)--年齡
);
2.外碼違約處理方式爲刪除級聯或更新級聯
-- 成績表Sno(學號)關聯學生表Sno
-- 成績表Cno(課程號)關聯課程表Cno
-- 設置兩個外鍵違約處理方式爲刪除級聯和更新級聯create table Cj(
Sno Char(7),--學號
Cno Char(1),--課程號
Grade Decimal(4,1) check(Grade>0 and Grade<100),--成績
primary key(Sno,Cno),
foreign key(Sno) references Student(Sno) on delete cascade on update cascade,
foreign key(Cno) references Course(Cno) on delete cascade on update cascade
);
爲外鍵設置了刪除級聯和更新級聯,當處理主表時外表受到牽連。即:更新(刪除)主表值-》外表相應值也更新(被刪除)
3.添加,刪除,修改約束
3.1添加約束
alter table 表名 add constraint 約束名 約束表達式
alter table Course add constraint CK_Course_Credit check(Credit in (1,2,3,4));
3.2刪除約束
alter table 表名 drop 約束名
alter table Course drop CK__Course__Credit__164452B1;
3.3修改約束
先刪除 再添加