約束
非空約束 –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),–設定了非空、檢查、預設約束
)