1.什么是外键?
外键是用来建立两张表之间的关系
2.为什么要有外键?
举个栗子:
先定义一张表
id
name
gender
dep_name
dep_desc
1
tank
male
技术部
技术有限部门
2
sean
female
销售部
销售丝袜
3
egon
female
销售部
销售丝袜
将所有数据存放在一张表中的弊端:
1.结构不清晰
2.浪费空间
3.可扩展性极差 ---> 不可忽视的弊端
类似于将所有python代码存放在一个py文件中,强耦合到一起了,代码解耦合就相当于 拆分表
拆分表解决以上问题.
因此需要给两张表之间,建立一种强有力的关系, 通过使用 “外键”
2.怎么使用外键?
先创建两张表(将一张表拆分成两张),确认两张表的关系(关系如下)
一对多
多对多
一对一
注意:确立两张表的关系必须站在两个位置去思考:
即:站在员工表的位置: 多个员工能否对应一个部门?(很明显可以)
员工与部门: 多 对 一
员工表单向 多 对 一 部门表
站在部门表的位置: 多个部门能够对应一个员工?(也很明显不能)
部门与员工:一 对 多
总结: 1)凡是单向 多 对 一 的表关系,称之为 一对多 的外键关系。
2)创建两张表,必须先建立被关联表,再建立关联表
重点:外键语法:
foreign key (当前表中建立关系的外键字段) references 被关联表明(id)
一对多关系
先创建被关联表:
create table dep(
id int primary key auto_increment,
dep_name varchar(16),
dep_decs varchar(255)
);
再创建关联表:
create table emp(
id int primary key auto_increment,
name varchar(16),
age int,
gender enum('male', 'female', 'others') default 'male',
dep_id int not null,
foreign key (dep_id) references dep(id)
);
建立好表格和再插入数据
先插入被关联表(