1、查询部分分为主查询和子查询;

2、根据返回值的记录多少分为单行子查询多行子查询;单行子查询用单行比较符=连接;多行子查询用多行比较符in连接;

3、子查询的内容可以放在FROM后面,也可以放在WHERE后面,也可以放在HAVING后面;

4、完整的SELECT语句可以拥有GROUP BYHAVING子句,也可以使用组函数;也可以从多个表中查询;

5、子查询的内容必须用小括号来界定;

6、例子1:子查询(子句)在FROM后面的:

SELECT first_name,last_name
FROM
(SELECT first_name,last_name
FROM s_emp
WHERE 1=1
AND first_name='国藩'
)
WHERE 1=1
AND last_name='曾';

精简一下就是:

SELECT first_name,last_name
FROM
(子查询)
WHERE 1=1
AND last_name='曾';

这里就像是一个定语从句,这里的(子查询)就替换成了另一个select语句;这里要注意,子查询语句里没有表示结束的分号;并且主查询的范围必须小于子查询,否则会因查不到数据而报错;

7、例子2:子查询(子句)在WHERE后面的

SELECT first_name,last_name
FROM s_emp
WHERE dept_id=
(
SELECT dept_id
FROM s_emp
WHERE last_name='曾'
);

这里查询的是姓是和‘曾’的所在的部门ID相同(只有一个姓曾)的所有人的姓名;

这里,有人问了,如果有好几个姓曾的人怎么办,我要把所有姓曾人所在部门的人的姓名都查出来怎么办,这里就是多行子查询;把等号换成in即可;


Oracle数据库SQL开发之 子查询——子查询的类型

子查询有两种基本的类型:

单行子查询:不向外部的SQL语句返回结果,或者只返回一行。

多行子查询:向外部的SQL语句返回一行或多行。

还有3种子类型,可以返回一行或多行:

多列子查询:向外部的SQL语句返回多列

关联子查询:引用外部的SQL语句中的一列或多列。通过相同的列与外部的SQL语句相关联。

嵌套子查询:位于另外一个自查中。子查询最多可以嵌套255层。


子查询的分类

子查询可以返回的数据类型一共分以下4种:

单行单列:返回的是一个具体列的内容,可以理解为一个单值数据。

单行多列:返回一行数据中多个列的内容。

多行单列:返回多行记录中同一列的内容,相当于给出一个操作范围。

多行多列:查询返回的结果是一张临时表。

子查询几乎可以出现在一条查询语句的任意位置上,不过在from、where、having子句中出现较多,而且在子查中一定要使用“()”声明。

子查询返回的结果:

where子句:此时子查询返回的结果一般都是单行单列、单行多列、多行单列(即不是一张表)。

having子句:此时子查询返回的都是单行单列数据(即一个数据),同时为了使用统计函数操作。

from子句:此时子查询返回的结果一般都是多行多列,可以按照一张数据表(即临时表)的形式操作。

Oracle的子查询【单行子查询和多行子查询】相关推荐

  1. oracle遍历表做查询,oracle 语句之对数据库的表名就行模糊查询,对查询结果进行遍历,依次获取每个表名结果中的每个字段(存储过程)...

    语句的执行环境是plsql的sql窗口, 语句的目的是从整个数据库中的所有表判断 不等于某个字段的记录数 . 代码如下: declare s_sql clob:=''; -- 声明一个变量,该变量用于 ...

  2. MySql基础篇---002 SQL之SELECT使用篇: 基本的SELECT语句,运算符,排序与分页,多表查询,单行函数,聚合函数,子查询

    第03章_基本的SELECT语句 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. SQL概述 1.1 SQL背景知识 1946 年,世界上第一台电脑 ...

  3. 1.子查询知识体系,单行子查询,多行子查询

     1查询工资比scott高的员工信息 A 第一步:查询出scott这个员工的工资 select sal from emp where ename = 'SCOTT'; B 第二步:查询出工资比sc ...

  4. 子查询:单行子查询,多行子查询,多列子查询

    #子查询 子查询使用规则: 子查询放在圆括号中 子查询放在比较条件右边(非强制) 子查询中不需要ORDER BY 子句 在单行子查询中使用单行运算符,在多行子查询中用多行运算符. 单行运算符:子查询结 ...

  5. 三、MySQL子查询学习笔记(标量子查询、列子查询、行子查询、表子查询 详解)

    三.MySQL子查询学习笔记 7:子查询 含义: 一条查询语句中又嵌套了另一条完整的select语句,其中被嵌套的select语句,称为子查询或内查询:在外面的查询语句,称为主查询或外查询 分类: 一 ...

  6. 使用SQL语句查询学生数据库中学生信息 —14条基本查询语句

    SQL语句不区分大小写 调用数据库(数据库创建见上一篇文章) use STU_Information go 1.查询各位学生的学号.班级和姓名 --1.查询各位学生的学号.班级和姓名 select S ...

  7. Oracle数据库:子查询、单行子查询,多行子查询,in,any,all语句,子查询的练习案例

    Oracle数据库:子查询.单行子查询,多行子查询,in,any,all语句,子查询的练习案例 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 ...

  8. oracle子查询子查询,Oracle 单行子查询和多行子查询

    --什么是单行子查询? --从子查询中返回一行结果的查询 select e.employee_id,e.last_name,e.salary from employees e where e.depa ...

  9. Oracle→分组函数、GROUP BY、HAVING、多表查询、连接、外连接、自连接、子查询单行多行、ROWNUM、ANY、ALL、NOT IN(...IS NOT NULL)、条件求和、DUAL

    分组函数 GROUP BY HAVING GROUP BY ROLLUP() 多表查询 等值连接 不等值连接 外连接 自连接 层次查询 子查询 子查询伪劣ROWNUM ROWID NOT IN(-IS ...

最新文章

  1. 在vc6控制台程序中如何调用运行ImageMagick命令行工具
  2. 使用快速傅里叶变换计算大整数乘法-代码
  3. 基于SQL on Hadoop的数据仓库技术
  4. TF之LSTM:利用多层LSTM算法对MNIST手写数字识别数据集进行多分类
  5. SM13: 分析SAP事务提交时的FM调用
  6. 超美响应式自适应引导页带音乐播放器源码
  7. python rpy2后封装_转换rpy2的python对象
  8. AMESim找图形平衡点的方法
  9. 如何查询redhat的版本信息
  10. 纵横算法之四:算法应该怎么学
  11. 假设检验之几种检验方法的比较
  12. 利用random解决三色球问题
  13. 主流各云平台主机性能对比
  14. 贴图技术入门——坦克大战地图
  15. 浅谈StrictMode
  16. 技术专栏|室内定位不用愁,UWB来拯救!
  17. 单片机的延时与中断问题及解决方法
  18. 【Go入门】Go语言基础知识
  19. 总结常用的Javafx功能及用法(下)
  20. 〈大学〉问——王守仁

热门文章

  1. pip 添加trusted host 一劳永逸
  2. 手机短号 (多实例)
  3. java兵临城下_CentOS6.4 64位系统安装jdk
  4. jQuery 中的 Deferred 和 Promises
  5. T细胞培养方法进展及方法学对比
  6. 简单而直接的Python web 框架:web.py
  7. OpenGL地球(自转+贴图)
  8. Java征兵系统(可拓展)
  9. 爱奇艺自研DRM技术斩获国家级专利奖 持续为内容创作者提供更高等级版权保护...
  10. mimemessage类是什么_邮件发送类