网站首页 > 知识剖析 正文
本系列为:MySQL数据库详解,为千锋教育资深Java教学老师独家创作
致力于为大家讲解清晰MySQL数据库相关知识点,含有丰富的代码案例及讲解。如果感觉对大家有帮助的话,可以【关注】持续追更~
文末有重点总结和福利内容! 技术类问题,也欢迎大家和我们沟通交流!
前言
从今天开始本系列内容就带各位小伙伴学习数据库技术。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深, 全面讲解数据库体系。 非常适合零基础的小伙伴来学习。
全文大约 【1475】字, 不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富案例及配图,让你更好的理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考......
一. 表关系
各位小伙伴在学习多表连接查询前,首先我们要介绍下表与表之间的关系。在多张表中,表和表之间是有四种关系的,分别是:一对一、一对多、多对一、多对多四种。
1. 一对一关系
所谓一对一关系就是两张表中,一张表的一条数据对应另一张表的一条数据。
下图中学生表和学生详情表的id起到了一个对应一个的关系,这就是一对一关系。
2. 一对多关系
一对多关系就是一张表的某一条数据对应另一张表的N多条数据,这种关系就是一对多。
例如下图中teacher讲师表中的tid为02的数据这条对应subject科目表中的SpringCloud、Redis、RabbitMQ这三条数据因为他们的teaid字段的值都是2。
3. 多对一关系
将一对多关系反过来看就是多对一了。
例如下图中subject科目表中的SpringCloud、Redis、RabbitMQ这三条数据都对应teacher讲师表中的这条数据。
4. 多对多关系
多对多关系需要借助一张关联表来完成。如下图,student学生表和score成绩表的关系是一对多,subject科目表和score成绩表的关系是一对多。那么student学生表和subject科目表的关系就是N:N多对多的关系。借助score成绩表作为关联表来完成多对多关系。
二. 表连接查询
下面带各位小伙伴一起学习表连接查询。
表连接查询一共分为三种分别是:内连接,左外连接,右外连接三种方式。
语法:SELECT 列名 FROM 表1 连接方式 表2 ON 连接条件
1. 内连接查询(INNER JOIN ON)
敲黑板啦,大家画重点哦
特点: 内连接是将两张表有关联关系的数据显示出来,没有关联关系的不显示。
SQL复制代码#1.查询每个讲师所教的科目(显式内连接)
select * from teacher a INNER JOIN `subject` b on a.TId=b.teaid;
#2.查询每个讲师所教的科目(隐式内连接)
select * from teacher a , `subject` b where a.TId=b.teaid;
经验: 在 MySql 中,第二种方式也可以作为内连接查询,但是不符合 SQL 标准。
而第一种属于 SQL 标准,与其他关系型数据库通用。
2. 左外连接(LEFT JOIN ON)
特点: 左外连接是以LEFT JOIN关键字左边为左表,关键字右边为右表。左表的数据全显示出来,右表的数据有关联关系的正常显示,没有关联关系的显示null。
SQL复制代码#查询所有学生和成绩
select * from student a LEFT JOIN score b ON a.SId = b.stuId;
注意: 左外连接,是以左表为主表,依次向右匹配,匹配到,返回结果。
匹配不到,则返回 NULL 值填充。
3. 右外连接(RIGHT JOIN ON)
特点: 右外连接是以RIGHT JOIN关键字左边为左表,关键字右边为右表。右表的数据全显示出来,左表的数据有关联关系的正常显示,没有关联关系的显示null。
SQL复制代码#查询所有学生和成绩
select * from student a RIGHT JOIN score b ON a.SId = b.stuId;
注意: 右外连接,是以右表为主表,依次向左匹配,匹配到,返回结果。
匹配不到,则返回 NULL 值填充。
三. 结语
最后在这里对本文核心要点进行总结:
熟练掌握表与表之间的四种关系:一对一、一对多、多对一、多对多。
熟练掌握表关联查询的三种方式:内连接查询、左外连接查询、右外连接查询,并熟记他们的特点。
附赠福利!
千锋教育2023新版MySQL课程,MySQL数据库零基础从入门到精通全套视频,点击下方链接即可学习!
视频传送门(点击即可跳转学习):「链接」
更多技术类干货内容/IT程序员相关知识,关注@千锋教育
猜你喜欢
- 2025-05-27 SQL其实很简单,现学现用
- 2025-05-27 几种常用Pandas数据合并处理与SQL的比较分析
- 2025-05-27 MySQL 中的 CROSS JOIN:强大的连接工具
- 2025-05-27 Java面试题:mysql 语句执行顺序
- 2025-05-27 SQL执行顺序(SqlServer)
- 2025-05-27 MySQL--多表连接查询
- 2025-05-27 SQL语句执行顺序及实际案例
- 2025-05-27 SQL表连接就是这么简单!
- 2025-05-27 《阿常·MySQL 70讲》全套教学视频
- 最近发表
-
- Zion无代码,小程序授权和解绑,无代码开发的关键
- 韦德二儿子“变”女儿,韦德支持儿子,与魔术师约翰逊经历相同
- 新鞋速报|Swoosh 面世 50 年!Nike Waffle Trainer 2致敬 Nike 的起源
- 李宁韦德之道2低帮版"踏冰" 球鞋曝光
- Zion又壮了!首秀顶翻1.9亿内线!英格拉姆单臂隔扣
- 音乐手游《zion载音》迎更新 钢琴白发少女免费带回家
- AI 应用赚钱工具哪家强?Coze 和 Zion 对比分析
- 韦德12岁次子完成变性手术,心情雀跃身姿妖娆
- 韦德晒全家福,他穿浴袍像中东土豪,二儿子扎雅比尤尼恩还性感
- 每日NBA球星上脚球鞋「5月12日」(近期nba球星上脚球鞋)
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)