Mysql資料庫---約束型別
Mysql資料庫的約束型別有:主鍵約束(Primary Key),外來鍵約束(Foreign Key),非空約束(Not Null),唯一性約束(Unique),預設約束(Default)。
一.主鍵約束(Primary Key)
主鍵約束要求主鍵列的資料唯一,並且不能為空。主鍵分為兩種型別:單欄位主鍵和多欄位聯合主鍵。
1.單欄位主鍵
在定義列的同時指定主鍵,語法規則:欄位名 資料型別 Primary Key [預設值]
在定義完成所有列之後指定主鍵,語法規則:[Constraint<約束名>] Primary Key [欄位名]
一般在建表時我們會選擇將主鍵放在所有列後。
2.多欄位聯合主鍵
主鍵由多個欄位聯合組成。語法規則:Primary Key[欄位1,欄位2,....,欄位n]
二.外來鍵約束(Foreign Key)
外來鍵用來在兩個表的資料之間建立連線,它可以是一列或者多列。一個表可以有一個或者多個外來鍵。一個表的外來鍵可以為空,若不為空,則每一個外來鍵值必須等於另一個表中主鍵的某個值。
外來鍵的作用:保證資料應用的完整性。
主表(父表):對於兩個具有關聯關係的表而言,相關聯欄位中的主鍵所在的那個表即是主表。
從表(子表):對於兩個具有關聯關係的表而言,相關聯欄位中的外來鍵所在的那個表即是從表。
建立外表的語法規則:[Constraint<外來鍵名>]Foreign Key 欄位名1[,欄位名2,....] References<主表名> 主鍵列1 [,主鍵列2,....]
建立一個表test_1
定義資料表test_2,讓它的主鍵deptId作為外來鍵關聯到的test_1的主鍵id,
在表test_2上添加了名稱為test_deptId的外來鍵約束,外來鍵名稱為deptId,其依賴於表test_2的主鍵id.
三.使用非空約束(Not Null)
非空約束指欄位的值不能為空。
非空約束 語法規則:欄位名 資料型別 not null
四.唯一性約束(Unique)
唯一性約束要求該列唯一,允許為空,但是隻能出現一個空值。唯一約束可以保證一列或者幾列不出現重複值。
非空約束的語法規則
1.在定義完列之後直接指定唯一約束
欄位名 資料型別 unique
2.在定義完所有列之後指定唯一約束
[Constraint<約束名>] Unique(<欄位名>)
宣告:Unique在表中可以有一個或者多個欄位宣告,而Primary Key,只能有一個。
五.預設約束(Default)(最簡單)
預設約束指定某列的預設值。
語法規則: 欄位名 資料型別 Dfault 預設值
所有的知識點均來自《Mysql5.5從零開始學》 劉增傑 張少軍 編著