文档介绍:子查询
Where子句单行子查询
HAVING子句单行子查询。
FROM子句单行子查询
IN比较符的多行子查询
ALL比较符的多行子查询。
ANY比较符的多行子查询
Where子句单行子查询
在简单查询中,我们查询了表中相关列的所有记录,但是生产数据库中往往需要查询满足一定条件的记录,如查询岗位JOB为MANAGER的员工信息等,此时需要使用条件查询,条件查询使用关键字WHERE实现
条件查询的语句格式为:
SELECT 列名[列名……]
FROM 表名
WHERE 条件语句
HAVING子句单行子查询
HAVING子句用来限制分组函数,我们先给出一个使用HAVING字句限制分组函数的例子,然后再给出在HAVING字句中使用单行子查询的例子
例子10-17使用HAVING子句限制分组函数。
SQL> select job,min(sal),avg(sal),max(sal)
2 from emp
3 group by job
4 having avg(sal)>2000;
上述查询中,HAVING字句限制了分组函数AVG(sal)的输出条件,只有满足AVG(sal)>2000时,才输出结果,目的是查询表emp中,平均工资大于2000,且按照工作岗位JOB分类后的每类岗位的最低工资,平均工资和最高工资。
FROM子句单行子查询
FROM字句后跟的是表名,在一定条件下也可以使用单行子查询,例如查询表EMP中工资大于平均工资的所有员工的信息.
例子10-20查询表EMP中工资大于平均工资的所有员工的信息。
SQL> select ,,,
2 from emp e,(select job,avg(sal) av_sal
3 from emp
4 group by job) d
5 where =
6* and >
IN比较符的多行子查询
在多行子查询中必须使用多行比较运算符, IN比较符返回子查询的中的每一个值,一旦有与该值相等的数据行则输出这些满足条件的数据行。
例子10-21查询那些是所在岗位中工资最低的员工信息。
SQL> select ename,job,sal,hiredate
2 from emp
3 where sal in (select min(sal)
4 from emp
5 group by job);
ALL比较符的多