1. 程式人生 > >Mysql資料庫---約束型別

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從零開始學》 劉增傑 張少軍 編著