约束
非空约束 --NN,ont null constraint
必须填写数据不能为空
--指定表 Student 添加名为NN_Student_sClassId非空约束(指定列名sClassId),括号输入表达式
alter table Student add constraint NN_Student_sClassId check(sClassId is not null)
主键约束 --PK,primary key constraint
唯一且不为空
--指定表 Student 添加名为PK_Student_sId主键约束(指定列名sId)
alter table Student add constraint PK_Student_sId primary key(sId)
唯一约束 --UQ,unique constraint
唯一,允许为空,但是同样的数据只能出现一次
--指定表 Student 添加名为UQ_Student_sName唯一约束(指定列名sName)
alter table Student add constraint UQ_Student_sName unique(sName)
默认约束 --DF,default constraint
设置默认值
--指定表 Student 添加名为DF_Student_sName默认约束(指定列名sBirthday),获取当前日期
alter table Student add constraint DF_Student_sName default(getdate()) for sBirthday
--指定表 Student 添加名为DF_Student_sName默认约束(指定列名sBirthday),指定日期
alter table Student add constraint DF_Student_sName default('1995-12-12') for sBirthday
--指定表 Student 添加名为DF_Student_sName默认约束(指定列名sSex),指定性别
alter table Student add constraint DF_Student_sSex default('男') for sSex
检查约束 --CK,check constraint
设置范围以及格式限制
--指定表 Student 添加名为 CK_Student_sSex检查约束(指定列名sSex),限制为'男'或者'女'
alter table Student add constraint CK_Student_sSex check(sSex='男' or sSex='女')
--指定表 Student 添加名为 CK_Student_sSex检查约束(指定列名sAge),限制为0-100之间的数字
alter table Student add constraint CK_Student_sAge check(sAge>=0 and sAge<=100)
外键约束 --FK,foreign key constraint
表关系
alter table Student add constraint Fk_Student_sClassId foreign key(sClassId) references Class(cId)
--指定表Student添加sClassId外键为Class的主键cId
on delete cascade on update cascade --级联删除 --级联更新
删除约束
alter table Student drop Constraint NN_Student_sClassId --删除指定表中的约束
创建表时设置列的约束
create table Users
(
uId int identity(1,1) primary key,--创建了一个列名为 uId的列,并设置了主键约束
uName nvarchar(8) not null unique,创建了一个列名为uName的列,并设置了唯一约束
uSex nchar(1) not null check(uSex='男' or uSex='女') default('男'),--设置了非空和默认约束
uBirthday datetime,--创建了一个列名为uBirhday的列,并没有设置约束
uAge int not null check(uAge>0 and uAge<100) default(18),--设置了非空、检查、默认约束
)