深圳软件测试学习:oracle数据库—子查询--千锋
在一个查询中继续包含另外一个查询,称为子查询
子查询可以出现在任意的位置:SELECT、FROM 、WHERE
子查询的类型:
· 单列子查询:返回的结果是一列的一个内容,出现几率最高
· 单行子查询:返回多个列,有可能是一条完整的记录
· 多行子查询:返回多条记录
在使用子查询的时候注意一下事项:
1.子查询必须用()括起来
2.子查询中不能包括order by子句
3.子查询允许嵌套多个,但是不要超过255个
一、单行子查询
单行子查询是指返回一行数据的子查询语句。
案例:在emp表中查询不是最低工资的员工信息。
select * from emp
where sal >(select min(sal) from emp);
二、多行子查询
多行子查询是指返回多行数据的子查询语句,当在where子句中使用多行子查询,必须使
1.使用in运算符
只要匹配一个结果成功,就会返回检索记录
案例:查询不是销售部门(sales)的员工信息
select * from emp
where deptno in
(select deptno from dept where dname <> ‘SALES’);
三,关联子查询
关联子查询
内查询的执行需要借助于外查询,而外查询的执行又离不开内查询的执行,这时,内查询和外查询是相互关联的,这种查询方式被称为关联子查询
案例:检索工资大于同职位的平均工资的员工信息
select empno,ename,sal
from emp f
where sal >(select avg(sal) from emp where job=f.job)
order by job;