1. 程式人生 > >MySQL資料庫中的五大約束

MySQL資料庫中的五大約束

文章目錄


資料庫中的五大約束包括:

1.主鍵約束(Primay Key Coustraint) 唯一性,非空性;

2.唯一約束 (Unique Counstraint)唯一性,可以空,但只能有一個;

3.預設約束 (Default Counstraint) 該資料的預設值;

4.外來鍵約束 (Foreign Key Counstraint) 需要建立兩表間的關係;

5.非空約束(Not Null Counstraint):設定非空約束,該欄位不能為空。

詳細介紹:

外來鍵約束 (Foreign Key Counstraint)

1、設定外來鍵的注意事項:

> 只有INNODB的資料庫引擎支援外來鍵,修改my.ini檔案設定default-storage-engine=
INNODB; > 外來鍵與參照列的資料型別必須相同。(數值型要求長度和無符號都相同,字串要求型別相同,長度可以不同); > 設定外來鍵的欄位必須要有索引,如果沒有索引,設定外來鍵時會自動生成一個索引;

2、設定外來鍵的語法:

CONSTRAINT 外來鍵名 FOREIGN KEY(外來鍵欄位) REFERENCES 參照表(參照欄位);
ON DELETE SET NULL ON UPDATE CASCADE -- 設定操作完整。

3、外來鍵約束的參照操作:

當對參照表的參照欄位進行刪除或更新時,外來鍵表中的外來鍵如何應對。
參照操作可選值:

  RESTRICT: 拒絕對參照欄位的刪除或修改(預設);
  NO ACTION:與RESTRICT相同,但這個指令只在MySql生效;
  CASCADE:  刪除或更新參照表的參照欄位時,外來鍵表的記錄同步刪除或更新;
  SET NULL: 刪除刪除或更新參照表的參照欄位時,外來鍵表的外來鍵設為NULL (
此時外來鍵不能設定為NOT NULL)

二、主鍵約束(Primay Key Coustraint

1、主鍵的注意事項:主鍵預設非空,預設唯一性約束,只有主鍵可以設定自動增長(主鍵不一定自增,自增一定是主鍵)。

2、設定主鍵的方式:

> 在定義列時設定:id     INT UNSIGNED PRIMARY KEY。
> 在列定義完成後設定:PRIMARY KEY(id)

其他約束沒有特殊要求因此不做解釋。