約束類型:
1、NOT NULL (非空約束)
2、PRIMARY KEY(主鍵約束)
每張數據表只能存在一個主鍵
主鍵保證記錄的唯一性
主鍵自動為NOT NULL
(Auto_increment 自動編碼 )
3、UNIQUE KEY(唯一約束)
唯一約束可以保證記錄的唯一性
唯一約束的字段可以為空值
每張數據表可以存在多個唯一約束
向帶有唯一約束的username字段插入相同的內容時,系統會提示錯誤
DEFAULT(默認約束)
對sex字段添加默認約束
當sex字段為空時系統默認將其記錄為3
FOREIGN KEY(外鍵約束)
保持數據一致性,完整性
實現一對一或一對多關系
Mysql的配置文件
Default_storage-engine=INNODB
創建父表
存儲在INNODB
SHOW CREATE TABLE province;
創建子表
FOREIGN KEY(pid) REFERENCES prvince(id)
父表參照列沒有創建索引
外鍵不存在索引的話,mysql將自動創建
外鍵約束的參照操作
Cascade 從父表刪除或更新且自動刪除或更新子表中匹配的行
SET NULL 從父表刪除或更新行,並設置子表中的外鍵列為NULL
Restrict 拒絕對父表的刪除或更新操作
No action 標准SQL的關鍵字,在MYSQL中與restrict相同
進行父表的添加,看子表的變動
刪除主表province中id=3的記錄
子表user1中pid為3的記錄也被刪除
對一個數據列建立的約束,稱為列級約束
對多個數據列建立的約束,稱為表級約束