`
z_piaoyi
  • 浏览: 23008 次
  • 性别: Icon_minigender_2
  • 来自: 河北
社区版块
存档分类
最新评论

oracle中子查询的介绍与相关的案例

阅读更多

           子查询

子查询概念 :当一个查询的结果是另一个查询的条件时,称之为子查询。

使用子查询注意事项:

         子查询可以嵌套多层

         子查询需要圆括号()括起来

子查询语法:

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

----- ---------- --------- ----- ----------- --------- --------- ------

<!--EndFragment-->
分享到:
评论

相关推荐

    Oracle查询优化改写技巧与案例2.zip

    《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...

    Oracle查询优化改写技巧与案例

    《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...

    Oracle查询优化改写 技巧与案例.pdf

    Oracle查询优化改写 技巧与案例.pdf

    《Oracle查询优化改写技巧与案例》PDF版本下载.txt

    通过对《Oracle查询优化改写技巧与案例》相关内容的深入探讨,我们不仅了解了Oracle查询优化的基本原理和技术要点,还学习了一些实用的技巧和方法。希望这些知识能够帮助读者更好地理解和掌握Oracle查询优化的核心...

    oracle查询优化改写技巧与案例

    《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...

    Oracle查询优化改写 技巧与案例_高清带书签版本

    《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...

    Oracle查询优化改写-技巧与案例

    本书“Oracle查询优化改写-技巧与案例2.0”聚焦于这一主题,旨在为数据库管理员(DBA)和开发人员提供实用的指导。 1. **查询优化基础**:优化SQL查询始于理解Oracle的执行计划。书中可能涵盖了如何使用`EXPLAIN PLAN...

    Oracle查询优化改写 技巧与案例 .pdf

    《Oracle查询优化改写 技巧与案例》这本书很可能详细介绍了这些概念,并通过实际案例分析,提供了实战经验,帮助读者掌握Oracle查询优化的各种技巧。无论是初学者还是经验丰富的DBA,都能从中受益,提升数据库管理...

    Oracle查询优化改写 技巧与案例

    以下将详细介绍一些核心的Oracle查询优化策略和实践案例。 1. **SQL语句优化** - **避免全表扫描**:尽量使用索引来减少数据读取量。当WHERE子句中的条件可以匹配索引时,Oracle会优先选择使用索引。 - **减少子...

    oracle查询优化改写 技巧与案例

    本文将基于《Oracle查询优化改写技巧与案例》这一主题,详细介绍其核心知识点及其应用场景。 #### 一、Oracle查询优化基础 ##### 1.1 查询执行计划 - **定义**:查询执行计划是指Oracle数据库执行SQL语句的具体...

    Oracle查询优化改写技巧与案例.rar

    本资料《Oracle查询优化改写技巧与案例》将深入探讨如何提升Oracle查询性能,通过实际案例来解析优化策略。 1. **执行计划分析** - SQL语句的执行计划是数据库执行SQL的详细步骤,理解执行计划有助于找到性能瓶颈...

    Oracle查询优化改写技巧与案例.pdf

    Oracle查询优化改写技巧与案例.pdf

    Oracle查询优化改写技巧与案例 有教无类落落

    《Oracle查询优化改写技巧与案例》看点: # 字典式写作手法:不讲具体语法,没有简单知识堆砌,直接以案例形式讲技巧与案例 # 大量优化实战方法:将主要SQL优化点一一剖析,分享大量SQL优化的实际工作经验 # 50余...

    Oracle性能优化与故障诊断案例分享

    Oracle数据库性能优化与故障诊断是数据库管理中极为重要的两个方面,它们直接关系到企业业务系统的稳定运行和性能表现。在这篇文章中,我们将详细探讨针对Oracle数据库性能问题和故障的诊断案例,并分享如何通过案例...

Global site tag (gtag.js) - Google Analytics