1. 程式人生 > >SQL的六種約束

SQL的六種約束

允許 作用 null cor span ron 單個 插入記錄 分享

約束關鍵字  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語法

SQL的六種約束