MySQL資料庫中的五大約束
阿新 • • 發佈:2018-12-06
文章目錄
資料庫中的五大約束包括:
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)。
其他約束沒有特殊要求因此不做解釋。