【SQL】MySQL学习笔记1-----子查询

时间:2022-09-23 15:55:14

1.什么叫子查询?

通俗的讲就是查询中有查询,SQL语句中有多个select语句。

2.什么地方可以嵌入子查询?

SELECT 列 (不在标准之内)

FROM 表 (可以嵌入,作为表存在)

WHERE 条件 (可以嵌入,作为条件存在)

3. 举例说明

假如此时有一个员工表emp,里面记录了员工的编号、名字、工作、工资及所在部门编号等信息

表结构如下:

【SQL】MySQL学习笔记1-----子查询

查询工资最高的员工的信息

SELECT * FROM emp WHERE sal = (SELECT max(sal) FROM emp); // 此时子查询是嵌套在WHERE后面的。

查询部门编号为30的员工的姓名和员工编号

SELECT e.empno, e.ename FROM (SELECT * FROM emp WHERE deptno = 30)e;  //此时子查询是嵌入在FROM后面的,当时此处也可以使用where条件来实现    相同效果。

查询工资大于39部门所有员工工资的员工信息

SELECT * FROM emp WHERE sal > ALL (SELECT sal FROM emp WHERE deptno = 30);

查询工资大于任一经理工资的员工信息

SELECT * FROM emp WHERE sal > ANY (SELECT sal FROM emp WHERE job='经理');