欢迎来到IDC91站长网!
解决服务器各种技术问题,加微信uecomzsr

MySQL

当前位置: IDC91 > 数据库 > MySQL

MySQL 外键(FOREIGN KEY)用法案例详解

时间:2022-05-30 13:45:44|栏目:MySQL|点击:

引子:把所有数据都存放于一张表的弊端

  1. 表的组织结构复杂不清晰
  2. 浪费空间
  3. 扩展性极差

为了解决上述的问题,就需要用多张表来存放数据。

表与表的记录之间存在着三种关系:一对多、多对多、一对一的关系。

处理表之间关系问题就会利用到FOREIGN KEY

多对一关系:

寻找表与表之间的关系的套路

举例:雇员表:emp表   部门:dep表

part1:

  1. 先站在表emp的角度
  2. 去找表emp的多条记录能否对应表dep的一条记录。
  3. 翻译2的意义:
    左表emp的多条记录==》多个员工
    右表dep的一条记录==》一个部门
    最终翻译结果:多个员工是否可以属于一个部门?

            如果是则需要进行part2的流程

part2:

  1. 站在表dep的角度
  2. 去找表dep的多条记录能否对应表emp的一条记录
  3. 翻译2的意义:
    右表dep的多条记录==》多个部门
    左表emp的一条记录==》一个员工

            最终翻译结果:多个部门是否可以包含同一个员工
如果不可以,则可以确定emp与dep的关系只一个单向的多对一
如何实现?
此时就可以用到外键了,在emp表中新增一个dep_id字段,该字段指向dep表的id字段

foreign key会带来什么样的效果?

约束1:在创建表时,先建被关联的表dep,才能建关联表emp

create table dep(
    id int primary key auto_increment,
    dep_name char(10),
    dep_comment char(60)
);
 
create table emp(
    id int primary key auto_increment,
    name char(16),
    gender enum('male','female') not null default 'male',
    dep_id int,
    foreign key(dep_id) references dep(id)
);

上一篇:mysql过滤复制思路详解

栏    目:MySQL

下一篇:MySQL如何利用存储过程快速生成100万条数据详解

本文标题:MySQL 外键(FOREIGN KEY)用法案例详解

本文地址:https://idc91.com/shujuku/3408.html

广告投放 | 联系我们 | 免责申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

Copyright © 2023 IDC91.COM 版权所有晋ICP备17006296号