本文整理自网络,侵删。
目录
- 1.笛卡尔积现象
- 2.连接查询知识点概括
- 1)什么是连接查询?
- 2)连接查询的分类
- 3.内连接讲解
- 1)等值连接:最大特点是,连接条件为等量关系。
- 2)sql92语法和sql99语法的区别。
- 3)非等值连接:最大特点是,连接条件为非等量关系。
- 4)自连接:最大特点是,一张表看作两张表。
- 4.外连接讲解
- 1)什么是外连接,和内连接有什么区别?
- 2)外连接的分类
前面两天带着大家换了一个口味,带着大家学习了pyecharts的原理和部分图形制作。今天我们继续回归带你学MySQL系列,带着大家继续学习MySQL数据库。
多表查询是数据分析师日常工作中一定会使用到的一个知识点,可见它的重要程度有多大。今天这个文章全面总结了MySQL多表查询的几种情况,你知道MySQL的92语法和99语法吗?你知道等值连接和非等值连接吗?不要觉得某些知识点用的少,就可以不知道,其实不然,至少别人写出来后,你要知道是什么意思。
1.笛卡尔积现象
结果如下:
分析如下:
上述结果肯定是不对的,左表中每一个人都有4个男朋友,仔细观察这4条记录,正好是左表每一条记录和右表一一匹配后的结果。
笛卡尔积现象产生的原因:两张表没有有效的连接条件。既然你没有连接条件,本表中的第一行肯定是能和另外表中的所有行进行一一匹配,同理,本表中的第二行肯定是能和另外表中的所有行进行一一匹配,以此类推,本表中的最后一行m也可以和另外表中的所有行进行一一匹配。若另外一张表有n行,那么最后显示的行数,肯定就是m*n行了。
如果不想产生笛卡尔积现象,就需要添加有效的表连接条件。拿上述例子来说,左表boyfriend_id只有和右边id相等时,才代表她们的男朋友。
添加表连接条件后:
可以看到,笛卡尔积最终产生的记录数是两张表中各自数据的乘积,当没有使用连接查询的时候,如果两张表中数据特别大的时候,将会撑爆你的内存,那是很可怕的,因此我们要学会使用连接查询。
2.连接查询知识点概括
1)什么是连接查询?
在实际开发中,大多数的情况下都不是从单表中查询数据,一般都是多张表联合查询取出最终的结果。也就是说:实际业务中也是一个业务由多个表构成,不同的信息存储在不同的表中,如果我们想要获取的信息来自多张表,此时你就需要使用连接查询。
2)连接查询的分类
① 按年代分类
MySQL中不支持全连接(full join),一般使用的是union关键字完成全连接的功能。MySQL中交叉连接是cross join,用的较少,我们也不用关心。
sq192标准:仅支持内连接;sq199标准【推荐】:仅仅支持内连接+外连接(仅支持左外和右外)+交叉连接; ② 按功能分类 内连接:等值连接、非等值连接、自连接;外连接:左外连接、右外连接、全外连接(full join);
3.内连接讲解
原始数据如下:
1)等值连接:最大特点是,连接条件为等量关系。
习题:查询员工名和对应的部门名;
sql92语法如下:(太老了,一般不用,看到了知道什么意思就行。)
相关阅读 >>
详解安装sql2012出现错误could not open key...解决办法
更多相关阅读请进入《sql》频道 >>
数据库系统概念 第6版
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » MySQL系列多表连接查询92及99语法示例详解教程
相关推荐
评论
管理员已关闭评论功能...