資料完整性
1.域完整性:---------匹配完整性:非空、預設
欄位/列
2.物體完整性:-------匹配完整性:主鍵、唯一鍵
記錄/行
3.參考完整性:-------匹配完整性:外鍵
表與表之間
約束:constraint
MySQL中的約束分類
主鍵:primary key
唯一鍵:unique
非空:not null
預設:default
外鍵:foreign key
主鍵、唯一鍵、外鍵都會自動創建索引
主鍵:一個表只能有一個主鍵,其可以對應一個欄位,也可以對應多個欄位(組合主鍵)
唯一鍵:也成為候選主鍵(跟主鍵的區別在于可以存盤null值)
外鍵:來源于主表的主鍵或唯一鍵(可允許為空,且其值必須在主表中出現過)
創建約束
constraint 約束名 約束型別(欄位名) references 主表(主鍵欄位或唯一鍵欄位)
創建外鍵約束
constraint 約束名 foreign key(對應欄位) references 主表(主鍵欄位或唯一鍵欄位)
創建組合主鍵
primary key (欄位1,欄位2)
對于已經存在的表,創建唯一鍵約束
alter table 表名 add constraint 約束名 unique(欄位名);
洗掉約束的資料 先洗掉子表資料,再洗掉主表資料
級聯洗掉
on delete cascade
級聯更新
on update cascade
關掉mysql 外鍵約束
SET FOREIGN_KEY_CHECKS=0;
打開mysql 外鍵約束
SELECT @@FOREIGN_KEY_CHECKS;
洗掉外鍵
注意:此陳述句在洗掉外鍵后不能關聯洗掉該外鍵自動產生的約束
alter table 表名 drop foreign key 外鍵名稱;
洗掉唯一鍵
注意:唯一鍵洗掉后對應的索引也會自動洗掉
alter table 表名 drop index 唯一鍵欄位名;
洗掉指定名稱的索引
alter table 表名 drop index 索引名稱;
提醒:對于有主外關聯的表,洗掉表中資料,如果無洗掉的級聯操作,那么洗掉主表資料之前,必須先洗掉從表對應資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/103152.html
標籤:MySQL
上一篇:MySQL資料庫:函式的應用
