約束
- 對錶的資料進行限定,保證資料的正確性,有效性,完整性。
- 類別:新增在資料名的後面
主鍵約束
- primary key,非空且唯一,資料的唯一標識
- 刪除:
ALTER table t_name DROP PRIMARY KEY;
- 注意,主鍵刪除與非空刪除不一樣。非空刪除用 MODIFY。
- 自增長
AUTO INCREMENT
: 自動增長的值只和上一條記錄有關係
非空約束
唯一約束
- unique,值不能重複
- 刪除:
ALTER table t_name DROP INDEX id;
外來鍵約束
- 一個主從表關係中,如果從表資料被刪除,主表某一列的資料由於關聯關係也會受影響。透過新增外來鍵約束,使資料無法輕易在從表中刪除。讓表與表之間存在關係,保證資料正確性。
- 格式:
外來鍵列, CONSTRAINT 外來鍵名 FOREIGN KEY (外來鍵列名) REFERENCE 主表名(主表列名);
- 一個例子:
CREATE TABLE department (
id INT PRIMARY KEY AUTO INCREMENT,
dep_name VARCHAR(20),
dep_location VARCHAR(20)
);
CREATE TABLE employ (
id INT PRIMARY KEY AUTO INCREMENT,
name VARCHAR(20),
age INT,
dep_id INT,
CONSTRAINT emp_dep_fk FOREIGN KEY (dep_id) REFERENCE department(id)
);
ALTER TABLE employee DROP FOREIGN KEY emp_dep_fk;
ALTER TABLE employ ADD CONSTRAINT emp_dep_fk FOREIGN KEY (dep_id) REFERENCE department(id);
級聯
- 更改外來鍵id時使用級聯,可以使主從表關聯的外來鍵值聯動更新。
- 新增級聯:ON UPDATE CASCADE
ALTER TABLE employ ADD CONSTRAINT emp_dep_fk FOREIGN KEY (dep_id) REFERENCE department(id) ON UPDATE CASCADE;
- 刪除級聯:ON DELETE CASCADE
本作品採用《CC 協議》,轉載必須註明作者和本文連結