深圳软件测试学习:oracle数据库—子查询--千锋

2019-11-05 16:59:12 浏览数 (1)

深圳软件测试学习: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;

0 人点赞