修改mysql 外键_MySQL之外键简介和修改表

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)

fc91253219fb5039c116ed39428595da.png

一对多关系

先创建被关联表:

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)

);

576d3a98018396fc1a199bd3d2b26bcd.png

建立好表格和再插入数据

先插入被关联表(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值