MySQL查询语句整理
查询操作
笛卡尔积
假设我们有两张表分别是部门表department和员工表employee,数据如下:


通过以下语句,可对两张表做一个交叉链接查询,
SELECT * FROM department CROSS JOIN employee;
结果如下:

可以看到交叉查询的返回结果一共有 15 行数据,在 employee 表中有 5 行数据,在 department表中有3 行数据,两个表做乘积(即,笛卡尔乘积),就会得到 15 行数据。
内连接
**内连接查询(INNER JOIN)**是根据一些过滤条件来匹配表之间的数据。在逻辑查询的前三个阶段处理中,INNER JOIN 应有前两个阶段,即首先产生笛卡尔积的虚拟表,再按照过滤条件来进行数据匹配操作。内连接分为两种查询方式:
- 显式内连接,在查询语句中,用
ON连接条件。 - 隐式内连接,在查询语句中,用
WHERE连接条件。
# 显式内连接
SELECT * FROM <左表> INNER JOIN <右表> ON <条件>;
# 隐式内连接
SELECT * FROM <左表>,<右表> WHERE <条件>;
# 显式内连接
SELECT * FROM department d INNER JOIN employee e

本文详细介绍了MySQL的查询语句,包括笛卡尔积的概念及示例,内连接(显式与隐式)的使用,外连接的类型和语法,联合查询的UNION和UNION ALL区别,以及子查询的各种形式,如带比较运算符、IN和ANY/SOME的子查询,并探讨了子查询的效率问题。
最低0.47元/天 解锁文章
174万+

被折叠的 条评论
为什么被折叠?



