【MySQL】数据库多表操作通关教程(外键约束、多表联合查询)

本文详细介绍了MySQL数据库中的外键约束,包括其创建、删除以及在一对一、一对多、多对多关系中的应用。此外,还深入讲解了多表联合查询,涵盖交叉联合查询、内连接、外连接以及子查询的各种操作,帮助读者掌握数据表之间的复杂查询技巧。
摘要由CSDN通过智能技术生成

?? 个人主页:的博客主页
支持我:?? 点赞 ?? 收藏 ??关注
?? 格言:一步一个脚印才能承接所谓的幸运

本文来自专栏:MySQL8.0学习笔记
本文参考视频:MySQL数据库全套教程
欢迎点击支持订阅专栏
在这里插入图片描述


文章目录


1 多表关系

?? 一对一关系

  • 比如:一个人有一个身份证,一个身份证对应一个人;
  • 实现原则:在任一表中添加唯一外键,指向另一方主键;
  • 在实际开发中遇到一对一情况比较少,遇到一对一关系一般合并表。在下图中,可以将两个表根据 id 合并:
    在这里插入图片描述

?? 一对多/多对一关系

  • 比如:一个部门有多个员工,一个员工只能对应一个部门;
  • 实现原则:在多的一方建立外键,指向另一方的主键, 示意图如下:
    在这里插入图片描述

?? 多对多关系

  • 比如:一个学生可以修多个课程,一个课程也可以被多个学生选择;
  • 实现原则:多对多关系实现需要借助第三张中间表。中间表至少包含两个字段,将多对多的关系,折成一对多的关系,中间表至少要有两个外键,这两个外键分别指向原来两个表的主键, 示意图如下:
    在这里插入图片描述

2 外键约束(FOREIGN KEY)

2.1 外键约束说明

?? 简介:

MySQL 外键约束是表的一种特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。

外键约束用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。

?? 举例说明:

在下图中,从表中的部门号受主表中的主键部门号的范围限制, 即,从表中的部门号列只能取值为1001、1002或1003。
在这里插入图片描述

?? 定义外键的规则:

  1. 主表必须已经存在于数据库中,或者是当前正在创建的表(即在创建外键时,主表必须存在);
  2. 必须为主表定义主键;
  3. 主键不能包含空值,但允许在外键中出现空值;
  4. 在主表的表名后面指定列名或列名的组合,这个列或者组合必须是主表的主键或候选键;
  5. 外键中列的数目必须和主表的主键中列的数目相同(通俗解释:主键的列数必须与外键的列数相同);
  6. 外键中列的数据类型必须和主表主键中对应列的数据类型相同。

2.2 外键约束的创建

?? 1.在创建表时设置外键约束

create table 语句中,使用 foreign key 关键字来指定外键。具体语法格式如下:

[constraint <外键名>] foreign key 字段名1 [, 字段名2, ...] 
references <主表名> 主键列1, [, 主键
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值