mysql的进阶学习--基础篇--多表查询--引入

本文探讨了数据库设计中的关键关系类型:一对一、一对多和多对多,并阐述了如何在数据库层面通过外键、中间表等手段来表示这些关系。涵盖了内连接、外连接、自连接和子查询在多表查询中的应用实例。

多表关系

项目开发中在进行数据库结构设计时, 会根据业务需求及业务模块之间的关系, 分析并设计表结构, 由于业务之间相互关联, 所以各个表结构之间也存在着各种联系, 基本上分为三种.
一对一
一对多
多对多

那么, 在数据库层面我们应该怎么来体现这些关系呢?

一对多

例如
一个部门对应多个员工, 一个员工只对应一个部门
实现: 在多的一方建立外键, 指向一的一方的主键.

多对多

例如
一个学生可以选择多门课程, 一门课程中也将有多个学生
实现: 建立第三张中间表, 中间表至少包含两个外键, 分别关联两方主键.

一对一

例如
一个人的个人信息, 和个人的受教育信息
这种关系可以直接定义在一个表中, 但是实际上, 多用于单表拆分, 将一张表的基础信息放在一张表, 其他详细信息放在另外一张表, 以提升操作效率.
实现: 在任意一方加入外键, 关联另外一方的主键, 并且设置外键为唯一的(unique)
在这里插入图片描述

在这里插入图片描述

多表查询概述

内连接

外连接

自连接

子查询

多表查询案例

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值