mysql 之foreign key

这篇文章的外键语法没有论证
1.什么是外部关键字foreign key;
2.怎么给表添加外部关键字。

外部关键字

在以后我们统一将外部关键字叫做外键,外键就是另一张表中的主键。

问:外键有啥用啊?
答:外键的主要作用就是保持数据的一致性,完整性。

再问:怎么保证的呢?
答:看图。

在这里插入图片描述

如图有两张表,classId 是T_Student的外键,是T_class 表的主键, 如果我们要删除T_class 表中classId为1的字段,程序是会报错的,因为t_student表中有数据和classId为1的字段关联了,是不能删除的,这样子就保证了数据的一致性和完整性。

继续问:那怎么才能删除呢?
接着答:需要先删除T__student表中classId为1的两个字段。

如何给表添加外部关键字
在MySQL中给表中字段添加外键约束的语法规则如下:

CONSTRAINT 外键名 FOREIGN KEY 字段名 REFERENCES 主表名(主键名)
举个例子:现在有两张表,t_emp、t_dept如下。
t_emp表
在这里插入图片描述
t_dept表
在这里插入图片描述
字段名称 数据类型 备注
id INT 员工编号
name VARCHAR(22) 员工姓名
deptId INT 部门ID(外键类型必须和对应主键类型一直)
我们来创建两张表,并给员工表(t_emp)添加外键:

CREATE TABLE t_dept
(
deptId INT PRIMARY KEY,
name VARCHAR(22),
location VARCHAR(50)
);
CREATE TABLE t_emp
(
id INT PRIMARY KEY,
name VARCHAR(22),
deptId INT,
CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES t_dept(deptId)
);
实际操作如图:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/toomemetoo/article/details/106050485
今日推荐