十五、子查询
当一个查询的结果是另一个查询的条件时,称之为子查询。
使用子查询注意事项:
子查询可以嵌套多层
子查询需要圆括号()括起来
子查询语法:
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');
注意:
子查询要包含在括号内。
将子查询放在比较条件的右侧。
根据查询的结果(内部嵌套查询的结果)把子查询的类型分为单行子查询与多行子查询,
注意:
单行操作符对应单行子查询,多行操作符对应多行子查询。
单行操作符:
>、>=、 <、 <= 、<>、=
举例:
//查询编号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);
备注:子查询可以返回空行 没要查询到结果是可以的。
多行子查询 返回多行查询结果。
操作符
操作符
|
描述
|
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;
SQL> select * from emp where exists(select * from dept);
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7369 SMITH CLERK 7902 1980-12-17 800.00 20
7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 30
7521 WARD SALESMAN 7698 1981-2-22 1250.00 500.00 30
3 rows selected
SQL> select * from emp where exists(select * from dept where deptno=80);
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ---
综合以上写出子查询的结果如下:
分享到:
相关推荐
由浅入深地介绍了Oracle 10g系统的使用方法和基本管理。...本书全面介绍使用Oracle数据库管理应用与开发知识,适合作为普通高校计算机专业Oracle教材,也可以作为Oracle数据库开发和应用人员的参考资料。
Oracle10g数据库管理系统是...以上是Oracle10g数据库管理系统的主要知识点,对于数据库管理与应用系统开发有着深远的影响。通过学习和掌握这些内容,可以有效地管理和开发高效、稳定、安全的Oracle数据库应用系统。
ORACLE 10G数据库管理、应用与开发标准教程
Oracle 10g数据库管理系统是企业级数据库解决方案,广泛应用于数据存储和管理。本教程主要涵盖了数据库的管理和开发,通过课后习题帮助学习者巩固理论知识和实践技能。以下是基于提供的部分章节内容展开的详细知识点...
web开发学习的必备技术之一,软件开发的参考文档,熟能生巧,不久,自学者就能应用的得心应手,成为web开发的一位高手,也为网站制作爱好者的首选学习资料,专业,详细,全面,一份资料胜几分不够专业的资料文档,...
Oracle 10g数据库管理系统是Oracle公司推出的一款强大的关系型数据库产品,被广泛应用于企业级的数据存储、管理和分析。在“Oracle 10g数据库管理应用教程”这本教材中,作者马晓玉深入浅出地讲解了Oracle 10g的诸多...
Oracle 11g中文版数据库管理、应用与开发标准教程
《Oracle 11g数据库系统设计、开发、管理与应用》是一本全面涵盖Oracle数据库技术的专业教程,适合数据库管理员(DBA)、开发人员以及对Oracle技术感兴趣的学者学习。PDF格式的书籍便于电子阅读和存储,使得读者可以...
以上总结了《Oracle10g数据库管理应用与开发》一书中的部分知识点,包括Oracle数据库的物理与逻辑存储结构、SQL语言的基础语法、数据操作方法以及数据库对象的管理等内容。这些知识点对于学习和掌握Oracle数据库的...
### Oracle10g数据库管理应用与开发标准教程关键知识点解析 #### 表空间与数据文件的关系 在Oracle10g数据库管理系统中,表空间(Tablespace)与数据文件(Datafile)之间的关系至关重要。表空间作为数据库逻辑上...
Oracle 10g 数据库管理应用与开发课后答案借鉴.pdf 资源摘要信息涵盖了 Oracle 10g 数据库管理和开发相关的知识点,以下是该资源的详细说明: 物理存储结构 Oracle 数据库系统的物理存储结构主要由三个文件组成:...
总结,Oracle 10g数据库管理系统为数据库管理员和开发者提供了强大的工具和特性,从高性能的数据存储到灵活的应用系统开发,再到可靠的灾难恢复机制,都是其突出亮点。理解并熟练掌握这些知识点,对于在Oracle环境中...
#### 三、Oracle 9i/10g 安装与管理 - **安装过程**:包括选择合适的硬件环境、配置操作系统、安装Oracle软件、配置监听器和网络服务等步骤。对于9i和10g版本,安装过程略有差异,但基本流程相似。 - **新功能介绍...
Oracle 10g 数据库管理应用开发标准教程习题 本文档主要介绍 Oracle 10g 数据库管理应用开发标准教程习题,涵盖了数据库管理、物理存储结构、逻辑存储结构、实例系统、SQL 语言等方面的知识点。 物理存储结构 ...
"Oracle 10g 数据库管理应用开发标准教程思考与练习.pdf" 本资源是 Oracle 10g 数据库管理应用开发标准教程的思考与练习指南,旨在帮助读者深入了解 Oracle 数据库管理和应用开发的基本概念和技术。本资源主要涵盖 ...
该内容为电子书ORACLE 10G FORMS BUILDER WEB数据库开发与应用_11474943,此电子书为高清版本
Oracle 10g数据库管理系统是Oracle公司发布的一款重要的数据库产品,尤其在企业级应用中广泛使用。本资料集“Oracle 10g 数据库管理艺术”深入探讨了Oracle 10g版本中的核心特性和管理技巧,旨在帮助数据库管理员...
Oracle 10g 数据库管理应用开发标准教程思考与练习 本资源主要集中在 Oracle 10g 数据库管理、应用开发和标准教程的思考与练习中。该资源涵盖了 Oracle 数据库的物理存储结构、逻辑存储结构、实例系统、服务器模式...
Oracle 10g数据库管理系统是Oracle公司发布的一款企业级数据库产品,它在数据库管理、性能优化、安全性以及可扩展性方面都有显著的提升。对于Oracle编程人员来说,掌握Oracle 10g的相关知识和源代码至关重要,这有助...