一、子查询
相关子查询与非相关子查询的区别
1、非相关子查询的子查询供主查询使用,子查询先于主查询执行,子查询可以单独执行。
2、相关子查询的子查询和主查询相互依赖,主查询先于子查询执行,子查询不可以单独执行
根据返回的结果又可以分为单行单列(一个值)、单行多列(一列值)、多行多列(一个表)
(一)、单行单列--返回的结果是某一列中的单个的值
--查询和SCOTT工资一样的员工信息 结果不显示SCOTT
SELECT * FROM EMP
WHERE SAL=(SELECT SAL FROM EMP WHERE ENAME='SCOTT') AND ENAME!='SCOTT';
(二)、单行多列(一列值)
单行比较符:<、>、<=、>=、=、!=
多行比较运算符:ANY(任意一个)、ALL(所有)、IN EXISTS 存在。ANY、ALL要配合单行比较符使用。
>ANY 大于最小的
>ALL 大于最大的
<ANY 小于最大的
<ALL 小于所有的
=ANY IN
=ALL 错(没有这个写法)
--查询比20部门呢所有人的工资都要高的员工信息
SELECT * FROM EMP
WHERE