1. 程式人生 > 其它 >SQL的約束

SQL的約束

約束的定義:約束是一種限制,它通過對錶的行或列的資料做出限制,來確保表的資料的完整性、唯一性。

主鍵(PRIMARY KEY)作為資料表中一行資料的唯一識別符號,在一張表中通過主鍵就能準確定位到某一行資料,因此主鍵十分重要,它不能有重複記錄且不能為空。

預設值約束 (DEFAULT)  當有 DEFAULT 約束的列,插入資料為空時,將使用預設值。

唯一約束 (UNIQUE)    規定一張表中指定的一列的值必須不能有重複值,即這一列每個值都是唯一的。

外來鍵 (FOREIGN KEY)  既能確保資料完整性,也能表現表之間的關係。

比如,現在有使用者表和文章表,給文章表中新增一個指向使用者 id 的外來鍵,表示這篇文章所屬的使用者 id,外來鍵將確保這個外來鍵指向的記錄是存在的,

如果你嘗試刪除一個使用者,而這個使用者還有文章存在於資料庫中,那麼操作將無法完成並報錯。因為你刪除了該使用者過後,他釋出的文章都沒有所屬使用者了,而這樣的情況是不被允許的。

同理,你在建立一篇文章的時候也不能為它指定一個不存在的使用者 id。一個表可以有多個外來鍵,每個外來鍵必須 REFERENCES (參考) 另一個表的主鍵,被外來鍵約束的列,取值必須在它參考的列中有對應值  

非空約束 (NOT NULL),聽名字就能理解,被非空約束的列,在插入值時必須非空。