笛卡尔积图解[通俗易懂]

笛卡尔积图解[通俗易懂]所谓笛卡尔积,通俗点说就是指包含两个集合中任意取出两个元素构成的组合的集合. MySQL的多表查询(笛卡尔积原理)先确定数据要用到哪些表。 将多个表先通过笛卡尔积变成一个表。 然后去除不符合逻辑的数据(根据两个表的关系去掉)。 最后当做是一个虚拟表一样来加上条件即可。 应用场合在某些情况下用于寻找连续日期中残缺的数据,可以先用笛卡尔积做一个排列组合,然后和目标表进行关联,以查询…

大家好,又见面了,我是你们的朋友全栈君。

所谓笛卡尔积,通俗点说就是指包含两个集合中任意取出两个元素构成的组合的集合. 

MySQL的多表查询(笛卡尔积原理)

  1. 先确定数据要用到哪些表。
  2. 将多个表先通过笛卡尔积变成一个表。
  3. 然后去除不符合逻辑的数据(根据两个表的关系去掉)。
  4. 最后当做是一个虚拟表一样来加上条件即可。

 应用场合

在某些情况下用于寻找连续日期中残缺的数据,可以先用笛卡尔积做一个排列组合,然后和目标表进行关联,以查询少了哪些数据。

例如:在一张考勤记录表中,记录了100个人在2018年8月的考勤信息,理论上这些人应该每天都有记录。但是实际上有的人在某些天上面的数据缺少了,然而不论是一天一天的查询,还是一个一个人的查询,都比较麻烦。

在这种情况下,可以针对每个人每一天做一个笛卡尔积处理。去除与实际表的关联,就很容易找出确实数据了。


 

                         AA                                                                                BB

      笛卡尔积图解[通俗易懂]                                                笛卡尔积图解[通俗易懂]

 

                              SELECT * FROM AA,BB ORDER BY a1,b1

                                                                                                                                                    CC

                                 笛卡尔积图解[通俗易懂]                           笛卡尔积图解[通俗易懂]

                                                                                                                            

                                                                     SELECT * FROM AA,BB,CC ORDER BY a1,b1,c1

                                                              笛卡尔积图解[通俗易懂]


左,右连接,内,外连接

l             内连接:

要点:返回的是所有匹配的记录。

  1. 2.         select * from aa,bb where aa.x = ba.x                                                 ////内连接

l             外连接有左连接和右连接两种。

要点:返回的是所有匹配的记录 外加 每行主表外键值为null的一条记录。辅表所有列为null值。

  1. select * from aa left join bb on aa.x=bb.x order by aa.x  //左外连接或称左连接
  2. select * from aa right join bb on aa.x=bb.x order by aa.x  //右外连接或称右连接

select子句顺序

子句

说明

是否必须使用

select

要返回的列或表示式

form

从中检索数据的表

仅在从表选择数据时使用

where

行级过滤

group by

分组说明

仅在按组计算聚集时使用

having

组级过滤

order by

输出排序顺序

limit

要检索的行数

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157307.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 根据连续信道容量的香农公式,当信道带宽B_信道容量的公式

    根据连续信道容量的香农公式,当信道带宽B_信道容量的公式目录信道带宽信道容量香农公式说道通信,从广义上来讲就不得不提到信道容量和信道带宽、以及著名的香农公式。先说说是什么是信道吧,通俗的来讲,信道就是信息传输的通道。信道在通信系统中的位置如下图所示:但是,并不是所有频率的信号都可以通过信道传输,信道的频率响应决定了哪些频率的信号可以通过信道,哪些频率的信号不能通过信道。信道带宽前面说到不是所有的信号都可以通过信道传输。所以我们把可以通过信道传输的信号频率范围大小就是信道的带宽,就像是下面这张图所展示的:从图中可以看出.

    2022年10月11日
    4
  • 利用opacity属性写过渡效果

    利用opacity属性写过渡效果opacity的意思是不透明性,opacity取值范围为0-1;opacity:0;表示完全透明,opacity:1;表示完全不透明。opacity:0于overflow:hidden不同,overflow:hidden会完全消除空间,opacity:0只是视觉上看不到,但是实际上会占用空间,这点我们常用来于:hover一起使用。<!DOCTYPEhtml><htmll…

    2022年5月25日
    60
  • BCNF范式、第四范式和第五范式「建议收藏」

    原文地址:https://blog.csdn.net/g_beginner/article/details/67893081. 定义当下面性质成立时,一个数据库模式中的表T及函数依赖集F被称为符合Boyce-Codd范式(BCNF):任何F可推导出的函数依赖X->A都在T中,这里A是不在X中的单一属性,X必须是T的一个超键。当一个数据库模式包含的所有表都符合BCNF时,这个数据库被称…

    2022年4月9日
    146
  • pycharm社区版和专业版的区别

    pycharm社区版和专业版的区别pycharm产品主页:https://www.jetbrains.com/pycharm/

    2022年8月26日
    7
  • ios个人开发者账号购买_马斯克回应推特收认证费用

    ios个人开发者账号购买_马斯克回应推特收认证费用原文网址:http://blog.sina.com.cn/s/blog_134451adb0102w152.html第一步:注册appleID登录https://developer.apple.com,选择MemberCenter​ ​填写邮箱地址(作为AppleID)、密码、名、姓(⚠️不要填反了。。。)、生日​

    2025年6月2日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号