时间:2021-07-01 10:21:17 帮助过:121人阅读
子查询的语法结构: SELECT 查询列 FROM 表名 WHERE 列名操作符 (SELECT 查询列 FROM 表名); 子查询可以写在WHERE,HAVING,FROM子句中; 单行子查询 : 子查询 返回的记录只有一条(要求使用以下操作符) 大于、=大于等于、小于、=小于等于 、=、 eg:select
子查询的语法结构:
SELECT 查询列
FROM 表名
WHERE 列名操作符
(SELECT 查询列
FROM 表名);
子查询可以写在WHERE,HAVING,FROM子句中;
单行子查询: 子查询 返回的记录只有一条(要求使用以下操作符)
>大于、>=大于等于、<小于、<=小于等于 、=、<>
eg:select * from emp where sal > (select sal from emp where empno = 7566);
多行子查询:子查询返回的记录条数可以使一条或多条(常用的操作符如下)
IN:
eg:select * from emp t where t.deptno in(30,40)
ANY:表示任意的。
– < ANY 比子查询返回的任意一个结果小即可,即小于返回结
果的最大值。
– = ANY 和子查询中任意一个结果相等即可,相当于IN。
– > ANY比子查询返回的任意一个结果大即可,即大于返回结
果的最小值。
eg:
select employee_id, last_name, job_id, salary
from employees
where salary > ANY
(select salary
from employees
where department_id = 80)
and department_id <> 80;
ALL:表示所有的。
– < ALL 比子查询返回的所有的结果都小,即小于返回结果的
最小值。
– > ALL比子查询返回的所有的结果都大,即大于返回结果的
最大值。
– = ALL 无意义,逻辑上也不成立。