美文网首页数据库
MySQL之外键约束

MySQL之外键约束

作者: 软件测试大田 | 来源:发表于2022-03-07 09:36 被阅读0次

我们项目中都会有很多表。

为什么不使用单表呢?查询效率低,数据冗余。

为什么要使用多表?查询效率高,数据不冗余。

由多表引入外键这个概念:什么是外键呢?举例来讲,

员工表有:

图片

部门表有:

图片

员工表中部门 dept_id 与部门表中部门 id 对应,那员工表的部门 dept_id 就叫做外键。拥有外键的员工表被称为从表 , 与外键对应的主键所在的部门表叫做主表。

创建外键约束格式:

# 创建 employee 员工表,添加外键约束

CREATE TABLE employee(

eid INT PRIMARY KEY AUTO_INCREMENT,

ename VARCHAR(20),

age INT,

dept_id INT,

# 添加外键约束

CONSTRAINT emp_dept_fk FOREIGN KEY(dept_id) REFERENCES department(id)

);

删除外键格式:

# 语法格式

alter table 从表 drop foreign key 外键约束字段;

# 例子,删除 employee 表中的外键约束,外键约束名 emp_dept_fk

alter table employee drop foreign key emp_dept_fk;

添加外键格式:

# 语法格式

alter table 从表 add foreign key (外键约束字段) references 主表 (主键字段);

# 例子,添加 employee 表外键约束

alter table employee add foreign key (dept_id) references department (id);

注意:

从表外键类型必须与主表主键类型一致,否则创建失败

添加数据时,应该先添加主表中的数据

删除数据时,应该先删除从表中的数据

相关文章

网友评论

    本文标题:MySQL之外键约束

    本文链接:https://www.haomeiwen.com/subject/nvxarrtx.html