一、子查询
嵌套在查询里的查询就叫子查询。
返回一行的子查询叫作单行子查询
返回多行的子查询叫作多行子查询
标量子查询
只返回一行一列
关联子查询
一般放到where子句里的子查询叫关联子查询
二、合并查询
UNION、UNION ALL、INTERSECT、MINUS
1.UNION
该操作符用于计算两个结果集的并集,会自动去掉结果集中的重复行,只保留重复行的一行结果。
SQL>SELECT ENAME,SAL,JOB FROM SCOTT.EMP WHERE SAL>2500 UNION SELECT ENAME,SAL,JOB FROM SCOTT.EMP WHERE JOB='MANAGER';
2. UNION ALL
不会自动去掉结果集中的重复行,会全部显示出来
SQL>SELECT ENAME,SAL,JOB FROM SCOTT.EMP WHERE SAL>2500 UNION ALL SELECT ENAME,SAL,JOB FROM SCOTT.EMP WHERE JOB='MANAGER';
3、INTERSECT
只显示第一个和第二个的交集
SQL>SELECT ENAME,SAL,JOB FROM SCOTT.EMP WHERE SAL>2500 INTERSECT SELECT ENAME,SAL,JOB FROM SCOTT.EMP WHERE JOB='MANAGER';
4、MINUS
只会显示存在第一个集合中,而不在第二个集合中的数据。
SQL>SELECT ENAME,SAL,JOB FROM SCOTT.EMP WHERE SAL>2500 MINUS SELECT ENAME,SAL,JOB FROM SCOTT.EMP WHERE JOB='MANAGER';