写点什么

MySQL 基础之六:连接查询

用户头像
打工人!
关注
发布于: 2021 年 06 月 08 日
MySQL基础之六:连接查询

主要内容:

本篇的主要内容为连接查询,什么是连接查询,连接查询分类,如何写连接查询语句以及一些知识点。

什么是连接查询:

连接查询顾名思义就是两个表或者两个以上一起查询。比如一张表中有学生的学号、姓名。另一张表中有学号、科目、分数。如果想要查询学号、姓名、科目和对应的分数怎么办?那就要同时用到两张表,把两张表进行连接查询就可以了。现在了解了连接查询的意义所在了吧。

连接查询分类:

根据语法出现的年代来划分:

  • SQL92

  • SQL99(较新)

根据表的连接方式来划分:

  • 内连接

  • 等值连接

  • 非等值连接

  • 自连接

  • 外连接

  • 左外连接(左连接)

  • 右外连接(右连接)

  • 全连接(很少出现)

笛卡尔乘积现象:

在进行连接查询时,会出现笛卡尔乘积现象。听着高大上,实际上就是在连接查询时,A 表中的每一条记录都会和 B 表中的每一条记录进行组合,返回给我们。下面举个例子感受下:

从上面的结果看,第一张 emp 表中有 14 条记录,第二张表 dept 中有 4 条记录。那我们现在进行连接查询,看下结果:

出现了 56 条记录,14*4=56。这就是笛卡尔乘积现象。

那如何避免笛卡尔乘积现象呢?

当然是加连接条件进行过滤了。

答案:不会增加了,底层该咋匹配还是咋整,但是返回的是有效记录,没用的就不会显示出来了。

表的别名:

现在说一说表的别名。实际上就是给表起个小名。原来表的名字叫 emp,那我们现在叫 e。就是这样简单。那 sql 语句如何写呢?

select d.dname,e.ename from dept as d,emp e;
复制代码

小贴士:as 关键字可以省略。

给表起个别名,第一可以提高执行效率,第二就是可读性高。

发布于: 2021 年 06 月 08 日阅读数: 7
用户头像

打工人!

关注

打工人! 2019.11.10 加入

InfoQ年度最佳内容获得者。 InfoQ签约作者 本人打工人一枚,自动化和控制专业入坑人一枚。目前在研究深度强化学习(DRL)技术。准备入坑互联网小白一枚。喜欢了解科技前沿技术,喜欢拍照。

评论

发布
暂无评论
MySQL基础之六:连接查询