Skip to the content.

MySQL 复合查询

多表查询

在实际开发中,数据往往来自多个表,所以需要用到多表查询。

案例:

显示员工姓名、工资以及所在部门的名字:

image-20240405172812618

显示部门号为 10 的部门名字、员工姓名和工资:

image-20240405173401075

显示各个员工的姓名、工资和工资级别:

image-20240405173634031

自连接

自连接指的是在同一张表中连接查询。

案例:

显示员工 FORD 的上级领导的编号和姓名。分别使用自查询和多表查询。

子查询:

image-20240405174340785

多表查询:

image-20240405174711298

子查询

单行子查询

子查询返回的结果是单列单行的。

案例:

显示与 SMITH 同一部门的员工:

image-20240405175316052

多行子查询

子查询返回的结果是单列多行的。

案例:

多列子查询

子查询返回的结果是多列的。

案例:

查询和 SMITH 的部门和岗位完全相同的所有员工,不包含 SMITH 本人:

image-20240405181000820

在 from 子句中使用子查询

案例:

显示每个高于自己部门平均工资的员工的姓名、部门号、工资和平均工资:

image-20240405181742707

显示每个部门工资最高的人的姓名、部门号和工资:

image-20240405182314150

显示每个部门的信息(部门名字、部门号和地址)和人员数量(子查询和多表查询):

子查询:

image-20240405182831307

多表查询:

image-20240405183308923

合并查询

在实际应用中,可以使用 union 或者 union all 来合并多个 select 的结果。

案例:

将工资大于 2500 或者职位是 MANAGER 的人找出来:

本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。