| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> MySQL7种join理论与实践 -> 正文阅读 |
|
[大数据]MySQL7种join理论与实践 |
?? 因为热爱所以坚持,因为热爱所以等待。熬过漫长无戏可演的日子,终于换来了人生的春天,共勉!!! 目录 前言:最近复习了一下MySQL的知识,温故知新,发现以前对7种join理论理解不够全面,同时也有些遗忘了,比如满外连接的写法 ,以及如何能使效率更高,union 和 union all 用哪个 ,这是我重新温习收获的,写个文章,加深理解! 正题:如上图是我们的7种join的示范图,要展示如图所示的情况,在讲解7种join之前,首先我们要了解下内连接、外连接、以及UNION的用法 1、内连接(INNER JOIN)内连接:合并具有同一列的两个以上的表的行, 结果集中不包含一个表与另一个表不匹配的行
2、外连接(OUTRE JOIN)外连接:两个表在连接过程中除了返回满足连接条件的行以外还返回左(或右)表中不满足条件的行 ,这种连接称为左(或右) 外连接。没有匹配的行时, 结果表中相应的列为空(NULL)。 注:
2.1 左外连接(LEFT OUTER JOIN)
2.2 右外连接(RIGHT OUTER JOIN)
2.3 满外连接(FULL OUTER JOIN)
3、UNION用法union:使用union关键字,我们可以将多条select语句结果集合并成一个结果集,合并时,两个表对应的列数和数据类型必须相同,并且相互对应。各个SELECT语句之间使用UNION或UNION ALL关键字分隔。
UNION操作符:返回两个查询的结果集的并集,去除重复记录。 ?UNION ALL操作符:返回两个查询的结果集的并集。对于两个结果集的重复部分,不去重。 注意:
讲完了内连接、外连接、和UNION的用法后,7种join理论也就手到擒来了! 4、7中种JOIN的实现我们的7种join无非也是从内连接、外连接、满外连接、以及他们的组合形式而成,接下来针对每一种情况,我会给出详细说明 4.1 左上图?对于这种形式,其实就是我们的左外连接,A的所有部分+B不匹配的部分为空(NULL)
4.2右上图??对于这种形式,其实就是我们的右外连接,B的所有部分+A不匹配的部分为空(NULL)
4.3左中图??对于这种形式,结果集为?A - A∩B
4.4中间图?对于这种形式,其实就是我们的内连接
4.5右中图??对于这种形式,结果集为B - A∩B
4.6左下图这种情况就是我们的满外连接啦,但是MySQL好像不支持FULL JOIN 语法,那要怎么做呢? 其实也很简单,就是用到我们的UNION或者UNION ALL(效率更高,没有去重操作),其结果集就是A∪B 第一种:UNION会帮我们去重
?第二种:UNION ALL(不会自动去重,适用没有重复的情况使用,效率更高)
实例:
4.7右下图这种情况就是就是将A、B独有的部分查出来了然后进行合并, 结果集为 A ∪B- A∩B,其实就是将我们上面的第三种和第五种进行合并得到的结果 代码示例:
好,到这里7种join理论就完结了,通过这些图示与代码,是不是对join理论有了更多的了解呢,喜欢就点赞收藏一下呗,后续持续更新MySQL相关更深入的知识! ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 12:11:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |