SQL Server 數據表代碼創建約束


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM