百度瀏覽器奔跑的小熊
約束用於限制列中的值的範圍。
如果對單個列定義 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,但前提是該列允許為空。
“設定預設值”的意思是如果我們將外來鍵列定義了預設值,當我們刪除或更新主鍵表的資料時,外來鍵表中的外來鍵列的值設為定義的預設值。