子查询:在一个查询的内部包含另外一个查询。

普通子查询

-- 查询出比7654工资还高的所有雇员的信息
select * from emp e where e.sal > (select sal from emp where empno = 7654); -- 查询出工资比7654高,同一时候与7788从事同样工作的所有雇员的信息
select * from emp e
where e.sal > (select sal from emp where empno = 7654)
and e.job = (select job from emp where empno = 7788); -- 查询出工资最低的雇员姓名、工作、工资
select e.ename, e.job, e.sal from emp e
where e.sal = (select min(sal) from emp);

in 查询

in keyword用来匹配一个集合中的记录

-- 查询雇员编号为1234,2345,7369,7900的雇员信息
select * from emp where empno in(1234, 2345, 7369, 7900);

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFnaTEyMDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

-- 查询雇员编号不是 1234,2345。7369,7900的雇员信息
select * from emp where empno not in(1234, 2345, 7369, 7900);

-- 查询每一个部门的最低工资相应的员工信息
select * from emp where sal in (select min(sal) from emp group by deptno);

anykeyword

any:表示随意的。

< any
比子查询返回的随意一个结果小就可以,即小于返回结果的最大值

= any
和子查询中随意一个结果相等就可以。相当于in

> any
比子查询返回的随意一个结果大就可以,即大于返回结果的最小值

-- 查询每一个部门的最低工资
select min(sal) min_sal from emp group by deptno;

sal 大于 any (每一个部门最低工资),即大于返回结果的最小值

select * from emp where sal > any (select min(sal) from emp group by deptno);

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFnaTEyMDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

sal = any (每一个部门最低工资),即 和子查询中每一个结果相等,同in

select * from emp where sal = any (select min(sal) from emp group by deptno);

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFnaTEyMDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

sal < any (每一个部门最低工资)。即大于返回结果的最大值

select * from emp where sal < any (select min(sal) from emp group by deptno);

allkeyword

all:表示全部的。

< all
比子查询返回的全部的结果都小,即小于返回结果的最小值

> all
比子查询返回的全部的结果都大,即大于返回结果的最大值

= all
无意义。逻辑上也不成立

查询工资在2000 到 3500的工资段的工资集合

select distinct sal from emp where sal between 2000 and 3500;

> all (工资在2000 到 3500的工资段的工资集合) ,即大于最大值

select * from emp where sal > all(select distinct sal from emp where sal between 2000 and 3500);

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFnaTEyMDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

< all (工资在2000 到 3500的工资段的工资集合),即小于最小值

select * from emp where sal < all(select distinct sal from emp where sal between 2000 and 3500);

oracle子查询的更多相关文章

  1. Oracle子查询相关内容(包含TOP-N查询和分页查询)

    本节介绍Oracle子查询的相关内容: 实例用到的数据为oracle中scott用户下的emp员工表,dept部门表,数据如下: 一.子查询 1.概念:嵌入在一个查询中的另一个查询语句,也就是说一个查 ...

  2. oracle 子查询和组合函数

    oracle 子查询和组合函数 --查询与"SCOTT"在同一个部门的员工 select empno,ename,deptno from emp where deptno in ( ...

  3. 一道Oracle子查询小练习

    一道Oracle子查询小练习   昨天晚上躺在床上看Oracle(最近在学习这个),室友说出个题目让我试试.题目如下: 有如下表结构,请选择出成绩为前三名的人的信息(如果成绩相同,则算并列),表名为t ...

  4. Oracle 子查询

    1.子查询在SELECT.UPDATE.DELETE语句内部可以出现SELECT语句.内部的SELECT语句结果可以作为外部语句中条件子句的一部分,也可以作为外部查询的临时表.子查询的类型有: ① 单 ...

  5. oracle 子查询因子化 浅谈(with的使用)

    近来学习oracle,想要提高自己所写语句的效率和易读性,今天的笔记是关于子查询因子话这么一个东西 因子化的查询不一定可以提高效率,但是一定可以再提高程序的可读性方面成效显著 --with 语句 wi ...

  6. Oracle子查询之高级子查询

    Oracle 高级子查询 高级子查询相对于简单子查询来说,返回的数据行不再是一列,而是多列数据. 1,多列子查询 主查询与子查询返回的多个列进行比较 查询与141号或174号员工的manager_id ...

  7. Oracle子查询之简单子查询

    Oracle 简单子查询 顾名思义,简单子查询是嵌套在 SQL 语句中的另一个SELECT 语句,并且子查询只返回一列数据 1,单行子查询: 子查询 (内查询) 在主查询之前一次执行完成.子查询的结果 ...

  8. Oracle子查询和多表查询

    多表查询需要用到表的连接 连接可以分为:(自行百度) 交叉连接(数字逻辑的笛卡尔积,不做解释) 等值连接 例如:select * from t_a, t_b where t_a.xx = t_b.xx ...

  9. Oracle 子查询(复杂select语句)

    在执行数据操作时,如果某个操作需要依赖于另外一个 select语句的查询结果,那么就可以把 select 语句迁入到该操作语句中,这样就形成了一个子查询.实际应用中,表与表之间相互关联,相互依存,这样 ...

  10. Oracle - 子查询、TOP - N

    1 子查询 sql 中查询是可以嵌套的,一个查询的结果可以作为另外一个查询的条件.表. SELECT select_list FROM table WHERE expr operator (SELEC ...

随机推荐

  1. Splash界面布局与代码实现(一)

    xml界面布局代码: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns ...

  2. MySql优化-你的SQL命中索引了吗

    在项目开发中SQL是必不可少的,表索也一样.这些SQL的运行性能不知道吗?有多少是命中了索引的?命中哪个索引?索引中有哪个是无效索引?这些无效索引是否会影响系统的性能?带着这些问题我们一起来学习一下. ...

  3. c#之process类相关整理

    一.根据进程名获取进程的用户名?   需要添加对 System.Management.dll 的引用   using System.Diagnostics; using System.Manageme ...

  4. 设置JQuery的Ajax方法同步

    Ajax请求默认的都是异步的如果想同步 async设置为false就可以(默认是true) var html = $.ajax({  url: "some.php",  async ...

  5. 如何导出远程oracle数据库中的表结构

    从远程oracle数据库上导出指定表的表结构语句有两种方法: 方法一:通过sql语句获得 1,make sure that you can connect the remote database. 2 ...

  6. strace排除Linux服务器故障

    strace是一个有用的小工具 – 大多数Linux系统默认已经安装 – 可以通过跟踪系统调用来让你知道一个程序在后台所做的事情.Strace是一个基础的调试工具;但是即便你不是在跟踪一个问题的时候它 ...

  7. shopnc 导出Excel数据问题实例 && ajax 获取当前值并传递

    任务:从商家中心导出数据,各个商品所属情况. 商品导出到Excel文件功能 /导出exel 功能make-in-lemon public function createExcelOp(){ $mode ...

  8. [汇编语言]-第二章寄存器(CPU工作原理)

    1- 对于汇编程序员来说,CPU中主要的部件是寄存器,这些寄存器是:AX BX CX DX SI DI SP BP IP CS SS DS ES PSW. 2- 8086CPU所有寄存器都是16位的, ...

  9. Python信息采集器使用轻量级关系型数据库SQLite

    1,引言Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言.SQLite作为后端数据库,可以搭配Python建网站,或者为python网络爬虫存储数据.SQLite还在其它 ...

  10. 七夕节(hd1215)干嘛今天做这题T_T

    七夕节 Problem Description 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!&q ...