約束用於限制列中的值的范圍。
如果對單個列定義 CHECK 約束,那么該列只允許特定的值。
如果對一個表定義 CHECK 約束,那么此約束會基於行中其他列的值在特定的列中對值進行限制。
1、語法
alter table 表名 add constraint 約束名
primary key (列名) /foreign key(列名) references 主表(列名)/
unique (列名)/
check(邏輯表達式)
default(缺省值) for 列名
2、常用的是外鍵約束
外鍵約束是對外鍵字段的值進行更新和插入時會和引用表中字段的數據進行驗證,數據如果不合法則更新和插入會失敗,保證數據的有效性
alter table students add foreign key(cls_id) references classes(id);
給students表添加 cla_id 外鍵約束
腳本語法:
- 添加外鍵約束: alter table 從表 add foreign key(外鍵字段) references 主表(主鍵字段);
- 刪除外鍵約束: alter table 表名 drop foreign key 外鍵名;
- 獲取外鍵約束名稱:show create table teacher;
3、視圖創建外鍵約束
(1)打開要建外鍵表的設計器
(2)右擊選擇“關系”。
(3)然后彈出“外鍵關系”窗體,我們選擇“添加”
(4)然后點擊“表和列規范”后面的小按鈕,
(5)填寫關系名(一般是表名_字段名 的命名方式)
選擇左邊主鍵表的id 對應右邊要設置外鍵約束的外鍵表字段
(6)展開INSERT和UPDATE規范,在更新規則和刪除規則有四個選項,分別是“不執行任何操作”、“級聯”、“設置為NULL”、“設置默認值”。
默認的不執行任何操作。如果是“不執行任何操作”,當我們刪除或更新主鍵表的數據時,會告訴用戶不能執行刪除或更新該操作。
“級聯”的意思是當我們刪除或更新主鍵表的數據時,會刪除或更新外鍵表中所涉及的相關數據的所有行。
“設置Null”的意思是當我們刪除或更新主鍵表的數據時,外鍵表中的外鍵列的值會設為Null,但前提是該列允許為空。
“設置默認值”的意思是如果我們將外鍵列定義了默認值,當我們刪除或更新主鍵表的數據時,外鍵表中的外鍵列的值設為定義的默認值。