MYSQL-外键

1,572 阅读1分钟

外键(英语:foreign key,台湾译外来键,又称外部键)。其实在关系数据库中,每个数据表都是由关系来连系彼此的关系,父数据表(Parent Entity)的主键(primary key)会放在另一个数据表,当做属性以创建彼此的关系,而这个属性就是外键。

比如,学生跟老师之间是教学的关系,学生数据表会有个属性叫指导老师(FK),而这个值就是对应到老师数据表的老师代号(PK),学生的指导老师就是外键。

主表: 对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表。

从表: 对于两个具有关联关系的表而言,相关联字段中外键所在的表就是从表。

  • 创建数据表tb_emp6, 并在表tb_emp6上创建外键约束,让他的键deptId作为外键关联到表tb_dept1的主键id,输入的SQL语句和运行结果如下所示。

创建tb_dept1

CREATE TABLE tb_dept1 (id INT(11) PRIMARY KEY, name VARCHAR(22) NOT NULL, location VARCHAR(50));

创建tb_emp6关联tb_dept1

CREATE TABLE tb_emp6 (id INT(11) PRIMARY KEY, name VARCHAR(25), deptId INT(11), salary FLOAT, CONSTRAINT fk_emp_dept1 FOREIGN KEY (deptId) REFERENCES tb_dept1(id));


以上语句执行成功后,在表tb_emp6上添加了名为fk_emp_dept1的外键约束,外键名称为deptId,其依赖于表tb_dept1的主键id。

  • 在修改表时添加外键约束
ALTER TABLE tb_emp2 ADD CONSTRAINT fk_tb_dept1 FOREIGN KEY(deptId) REFERENCES tb_dept1(id);

  • 删除外键约束
ALTER TABLE tb_emp2 DROP FOREIGN KEY fk_tb_dept1;