SQL的六種約束


約束關鍵字  Constraints

作用:限制表的數據類型

第一種方式:創建表的時候添加約束,create table語句

第二種方式:創建表之后添加約束,alter table語句

 

注:紅色為注意事項

1、not null(不能為空)

創建表時約束not null

創建car表時約束了carid字段不能為空

 

2、unique(此字段的每條記錄必須唯一,一般我們用來約束id,他和primary key一樣,都對字段保證了唯一性)

創建表時約束unique

 

創建表之后約束unique

圖一:創建car表的時候約束了字段carid必須擁有唯一性

圖二:修改car表字段類型,給car表的carname字段添加一個unique約束

 

3、primary key(設置此字段為這張表的主鍵,每個表應該有一個主鍵,而且每個表都只能有一個主鍵,主鍵字段必須唯一且不能有null值)

創建時設置主鍵

創建后設置主鍵

圖略:alter語法

 

附:primary key還有一種情況,聯合主鍵。(一句話概括 = 兩個或兩個以上的字段都設置成主鍵),這里看似違反了unique,其實不然。它是把聯合主鍵看成一個主鍵

這里我們說一下聯合主鍵,見下圖

創建表時設置聯合主鍵

我們可以看到被創建的car表,他的兩個字段carid和carname被設置成了聯合主鍵

創建后設置主鍵

圖略:alter語法

 

4、foreign key(設置此字段為這張表的外鍵,它指向另一張表的主鍵。)

foreign key約束防止破壞表連接,外鍵字段里的所有數據,必須是另一張表的主鍵字段里的值。

也就是說,一張表的外鍵必須指向另一張表的主鍵

創建時設置外鍵

創建smallcar表,給smallcarid字段設置了主鍵,給carid字段設置了指向car表的carid字段的外鍵

 

創建后設置外鍵

圖略:alter語法

 

 

5、check(約束用於限制字段中的值的范圍)

對單個字段check的約束,那只允許該字段的值為特定的值

對表check的約束,會在特定的字段進行數據限制

創建表時check約束

約束字段carid的值必須大於0,多個check約束可以效仿上面的幾個約束。

但是括號里面要用and進行隔開

 

創建表后check約束

圖略:alter語法

 

 

6、default(默認值,如果定義了默認值,再插入數據時如果沒有插入數據,會根據默認值插入)

創建時設置default約束

上面的carname記錄是自動添加的

給carname字段設置了default約束,那么我們在插入記錄的時候即使沒有填寫carname字段的數據。會默認給我們一個'carname‘數據

 

創建后添加default約束

圖略:alter語法

 


免責聲明!

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



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