使用SQL語句創建和刪除約束


約束的目的就是確保表中的數據的完整性。

常用的約束類型如下:

主鍵約束:(Primary Key constraint)      要求主鍵列唯一,並且不允許為空

唯一約束:(Unique Constraint)              要求該列唯一,允許為空,但只能出現一個空值

檢查約束:(Check Constraint)                某列取值范圍限制、格式限制等。如有關年齡的限制

默認約束:(Default Constraint)               某列的默認值,如我們的男性學員比較多,性別默認為男

外鍵約束:(Foreign Key Constraint)       用於在兩表之間建立關系,需要指定引用主表的哪一列

一、添加約束

在創建表時,我們可以在字段后添加各種約束,但一般不這樣混用,推薦將添加約束和建表的語句分開編寫。

添加約束的語法如下:

 

Code:
  1. Alter Table 表名   
  2. Add Constraint  約束名 約束類型 具體的約束類型  

上述語法標識修改某個表,添加某個約束,其中約束名的命名規則推薦采用"約束類型_約束字段"這樣的形式。

Code:
  1. ---添加主鍵約束   
  2. Alter Table stuInfo   
  3. Add Constraint  PK_stuNO primary Key(stuNo)   
  4. ---添加唯一約束   
  5. Alter Table stuInfo   
  6. Add Constraint UQ_stuID unique(stuID)   
  7. ---添加默認約束   
  8. Alter Table stuInfo   
  9. Add Constraint DF_stuAddress default('地址不詳') for stuAddress   
  10. ---添加檢查約束   
  11. Alter Table stuInfo   
  12. Add Constraint CK_stuAge check(stuAge between 15 and 40)   
  13. ---添加外鍵約束   
  14. Alter Table stuMarks   
  15. Add Constraint FK_stuNo foreign key(stuNo) references stuInfo(stuNo)  

二、刪除約束

如果錯誤的添加了約束,則可以刪除約束

刪除約束的語法如下:

Code:
  1. Alter Table 表名   
  2. Drop Constraint  約束名  

附加:在創建表的時候同時添加約束的寫法:

Code:
  1. use stuDB   
  2. go   
  3. if exists(select * from Sysobjects where name = 'stuInfo')   
  4. drop table stuInfo   
  5. go   
  6. create table stuInfo   
  7. (   
  8.      stuName varchar(20) not null primary key(stuName)    
  9. ,stuID int not null unique(stuID)   
  10. ,stuAddress varchar(20) not null default('地址不詳')   
  11. ,stuAge int not null check(stuAge between 15 and 40)   
  12. )  

   原文鏈接:https://blog.csdn.net/hamber_bao/article/details/6504905


免責聲明!

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



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