数据库约束是为了保证数据的完整性(正确性)而实现的一套机制 非空约束 主键约束(PK) primary key constraint 唯一且不为空 唯一约束 (UQ)unique constraint 唯一,允许为空,但只能出现一次 默认约束 (DF)default constraint 默认值 检查约束 (CK)check constraint 范围以及格式限制 外键约束 (FK)foreign key constraint 表关系
--添加主键约束 alter table Score add constraint? PK_Score primary key(sId)
? --添加唯一约束 alter table student add constraint UQ_student unique(sNo)
--添加默认约束 alter table student add constraint DF_student default('男') for sSex
--添加检查约束 alter table student add constraint CK_student check(sAge >=18 and sAge <=100)
alter table student add constraint CK_Sutdent1 check(sSex='男' or sSex='女')
alter table student add constraint CK_Student2 check(sIntime>sBirthday)????????? --入学日期必须大于出生日期
--添加外键约束(主键表Class 外键表student) alter table student add constraint FK_student foreign key(sClassId) references Class(cId) --外键student表中的sClassId来references引用主键表中的cid on delete cascade????? --级联删除,添加约束的时候加上这个,删除主表的时候,会把外键对应的子表级联删除(慎用) on update cascade????? --级联更新 --删除约束 alter table student drop constraint FK_student
?
?
--约束练习 --Teacher表中 --tSex? 控制只能是男 女,默认男 --tAge? 在30-40之间? 默认30 --tName 唯一 alter table Teacher add constraint CK_Teacher_tSex check(tSex='男' or tSex='女'), constraint DF_Teacher_tSex default ('男') for tSex, constraint CK_Teacher_tAge check(tAge>=30 and tAge <=40), constraint DF_Teacher_tAge default (30) for tAge, constraint UQ_Teacher_tName unique (tName)
?
?
--在建表的时候创建约束
--drop table Student0 create table Student0 ( ?sId int identity(1,1) primary key,?sName nvarchar(10) not null,?sAge int constraint CK_Student0_sAge check(sAge >= 18) constraint DF_Student0_sAge default(18),?sClassId int constraint FK_Student0_sClassId foreign key (sClassId) references Class(cId) )
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|