約束
非空約束 --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),--設置了非空、檢查、默認約束
)