oracle总结之五———子查询
来源:互联网 发布:达内旅游项目java描述 编辑:程序博客网 时间:2024/05/06 12:44
子查询
子查询概念 :当一个查询的结果是另一个查询的条件时,称之为子查询。
使用子查询注意事项:
1、子查询可以嵌套多层
2、子查询需要圆括号()括起来
子查询语法:
SELECT select_list
FROM table
WHERE expr operator
(SELECT select_list
FROM table);
子查询 (内查询) 在主查询之前一次执行完成。
子查询的结果被主查询使用 (外查询)。
举例:查询员工的工资大于JONES的员工信息
分析过程如下:
首先:查询JONES的员工工资是多少 :结果2975
SQL> select sal from emp where ename='JONES';
实际上我们要查询的是:薪资大于2975的员工的信息写法如下:
SQL> select * from emp where sal>2975;
//综合以上写出子查询的结果如下:
SQL> select * from emp where sal>(select sal from emp where ename='JONES');
注意:
1、子查询要包含在括号内。
2、将子查询放在比较条件的右侧。
根据查询的结果(内部嵌套查询的结果)把子查询的类型分为单行子查询与多行子查询
注意:
单行操作符对应单行子查询,多行操作符对应多行子查询。
单行操作符
>、>=、 <、 <= 、<>、=
举例:
//查询编号7876相同职位的员工信息 并且薪资大于编号为7521的薪资的员工信息
SQL> select * from emp where job=( select job from emp where empno=7876) and sal>( select sal from emp where empno=7521);
//子查询含有组函数
SQL> select * from emp where sal>(select avg(nvl(sal,0)) from emp);
//子查询含有having子句 查询部门的最小工资大于20号部门最小工资的部门号及最小工资数
SQL> select deptno,min(sal) from emp group by deptno having min(sal)>( select min(sal) from emp where deptno=20);
备注:子查询可以返回空行 没要查询到结果是可以的。
多行子查询
l 返回多行。
l 使用多行比较操作符。
操作符如下图:
操作符
描述
In
等于列表中的任何一个
Any
子查询返回的任意一个值比较 相同还有some
All
和子查询返回的所有值比较
Exists
//查询薪水小于工作岗位CLERK的任何一个薪资的员工信息 并且不包含工作岗位为CLERK的员工信息
SQL> select * from emp where sal < any (select sal from emp where job='CLERK') and job<>'CLERK';
//all与所有值比较 >all 代表的是大于查询结果的最大值
SQL> select * from emp where sal > all (select sal from emp where job='CLERK') and job<>'CLERK';
//查询岗位与部门编号为10相同的员工信息 不包含自己。
SQL> select * from emp where job in(select job from emp where deptno=10) and deptno<>10;
- oracle总结之五———子查询
- Oracle知识点总结—子查询与数据更新
- 47.Oracle数据库SQL开发之 子查询——子查询的类型
- 48.Oracle数据库SQL开发之 子查询——编写单行子查询
- 51.Oracle数据库SQL开发之 子查询——编写关联子查询
- 52.Oracle数据库SQL开发之 子查询——编写嵌套子查询
- oracle 之 子查询
- Oracle 起步日记(4)——数据查询之去重、字符串连接、子查询
- 49.Oracle数据库SQL开发之 子查询——编写多行子查询
- 50.Oracle数据库SQL开发之 子查询——编写多列子查询
- Oracle数据库之——分组查询,子查询及添加,更新,删除
- Oracle笔记——子查询
- 53.Oracle数据库SQL开发之 子查询——编写包含子查询的UPDATE和DELETE
- Oracle 11g 第六章知识点总结——子查询
- oracle总结之三———高级查询
- oracle学习总结-----子查询
- Oracle 之——子查询 DDL DML 集合 及其他数据对象
- oracle 之 sql 子查询
- oracle的dos的操作方式
- 三大牛人看外国文献的方法
- oracle总结之二———Sql--plus函数
- oracle总结之三———高级查询
- oracle总结之四———分组函数
- oracle总结之五———子查询
- ARM嵌入式简介
- 我的方向
- 转C++除0
- 解决方案
- 希望可以结交到更多好朋友、志同道合的好朋友
- 希望可以结交到更多好朋友、志同道合的好朋友
- 给力的csdn社区
- 综述写法(转)