[由浅入深学MySQL]- MySQL连接查询详解

科技资讯 投稿 6300 0 评论

[由浅入深学MySQL]- MySQL连接查询详解

本系列为:MySQL数据库详解,为千锋教育资深Java教学老师独家创作

致力于为大家讲解清晰MySQL数据库相关知识点,含有丰富的代码案例及讲解。如果感觉对大家有帮助的话,可以【点个关注】持续追更~

文末有重点总结和福利内容!
技术类问题,也欢迎大家和我们沟通交流!

前言

数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深, 全面讲解数据库体系。 非常适合零基础的小伙伴来学习。


【1475】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富案例及配图,让你更好的理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考.....。

一. 表关系

多表连接查询前,首先我们要介绍下表与表之间的关系。在多张表中,表和表之间是有四种关系的,分别是:一对一、一对多、多对一、多对多四种。

1. 一对一关系

所谓一对一关系就是两张表中,一张表的一条数据对应另一张表的一条数据。

2. 一对多关系

一对多关系就是一张表的某一条数据对应另一张表的N多条数据,这种关系就是一对多。

3. 多对一关系

将一对多关系反过来看就是多对一了。

SpringCloud、Redis、RabbitMQ这三条数据都对应teacher讲师表中的这条数据。

4. 多对多关系

二. 表连接查询

表连接查询一共分为三种分别是:内连接,左外连接,右外连接三种方式。

语法:SELECT 列名 FROM 表1 连接方式 表2 ON 连接条件

1. 内连接查询(INNER JOIN ON)

特点: 内连接是将两张表有关联关系的数据显示出来,没有关联关系的不显示。

#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 标准。

2. 左外连接(LEFT JOIN ON)

特点: 左外连接是以LEFT JOIN关键字左边为左表,关键字右边为右表。左表的数据全显示出来,右表的数据有关联关系的正常显示,没有关联关系的显示null。

#查询所有学生和成绩
select * from student a LEFT JOIN score b ON a.SId = b.stuId;

注意: 左外连接,是以左表为主表,依次向右匹配,匹配到,返回结果。

3. 右外连接(RIGHT JOIN ON)

特点: 右外连接是以RIGHT JOIN关键字左边为左表,关键字右边为右表。右表的数据全显示出来,左表的数据有关联关系的正常显示,没有关联关系的显示null。

#查询所有学生和成绩
select * from student a RIGHT JOIN score b ON a.SId = b.stuId;

注意: 右外连接,是以右表为主表,依次向左匹配,匹配到,返回结果。


三. 结语

最后在这里对本文核心要点进行总结:

  1. 熟练掌握表关联查询的三种方式:内连接查询、左外连接查询、右外连接查询,并熟记他们的特点。


以上就是本文的全部内容啦,感觉有帮助的话可以关注我们持续追更!

编程笔记 » [由浅入深学MySQL]- MySQL连接查询详解

赞同 (29) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽