含义:

出现在其他语句中的select语句,称为子查询或内查询外部的查询语句,称为主查询或外查询

分类

按子查询出现的位置:

select后面: 仅仅支持标量子查询

from后面: 支持表子查询
where或having后面:★ 标量子查询(单行)列子查询(多行)√行子查询
exists后面(相关子查询) 表子查询

按结果集的行列数不同:

标量子查询(结果集只有一行一列>
列子查询(结果集只有一列多行
行子查询(结果集有一行多列)
表子查询<结果集一般为多行多列>

一.where或having后面

1.标量子查询

案例一:谁的工资比Abel高

SELECT last_name,salary
from employees
WHERE salary>(SELECT salaryFROM employeesWHERE last_name= 'Abel'
)

案例二.查询最低工资大于50号部门最低工资的部门id和其最低工资

SELECT MIN(SAlary),department_id
FROM employees
GROUP BY department_id
HAVING MIN(salary)>(SELECT MIN(salary)FROM employeesWHERE department_id=50
)


2.列子查询

in / not in :等于列表中的任意一个

any/some 和子查询返回的一个值比较

all 和子查询返回的值比较

案例一:返回location_id是1400或1700的部门中的所有员工姓名

SELECT last_name
from employees
WHERE department_id in(
SELECT DISTINCT department_id
FROM departments
WHERE location_id in (1400,1700)
)

3.行子查询

查询员工编号最小并且工资最高的员工信息

SELECT *
from employees
WHERE (employee_id,salary)=(SELECT MIN(employee_id),MAX(salary)from employees
)


或者

SELECT *
from employees
WHERE (employee_id)=(SELECT MIN(employee_id)from employees
)
and salary=(SELECT MAX(salary)FROM employees
)

二.Select后面的子查询

案例.查询每个部门的员工个数

SELECT d.department_name,(SELECT COUNT(*)FROM employees eWHERE e.department_id = d.department_id
)
from departments d

三,exists后的(相关子查询)

exists 即 存在

语法:

exists(完整的查询语句)

结果:1或0

案例:查询有员工的部门名

SELECT department_name
FROM departments d
WHERE EXISTS(SELECT *FROM employees eWHERE d.department_id = e.department_id
)

SQL语言之DQL语言学习(十)子查询相关推荐

  1. 1.实现sql语言中DQL语言,实现简单查询、条件查询、排序查询等。

    1.实现sql语言中DQL语言,实现简单查询.条件查询.排序查询等. (1)检索grade表当中的所有信息. (2)检索grade表数学成绩大于100的所有人信息. <%@ page langu ...

  2. SQL Server 调优系列基础篇 - 子查询运算总结

    前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符.有兴 ...

  3. Oracle学习:子查询 (sql 嵌套 sql)

    查询比 SCOTT 工资高的员工信息 (1)查找 SCOTT 的工资 select sal from emp where ename='SCOTT'; // 结果:3000 (2)将上一步得到的结果作 ...

  4. SQL学习之子查询,基于Oracle下的HR用户(四)

    六. 子查询 1 子查询介绍 1.1 什么是子查询 子查询是一个 SELECT 语句,它是嵌在另一个 SELECT 语句中的子句. 可以用组合两个查询的方法解决这个问题,放置一个查询到另一个查询中.内 ...

  5. sql 视图不排序_算法工程师SQL进阶:神奇的自连接与子查询

    自连接与子查询是SQL中非常重要的两项技术,自连接是针对相同的表的联结方法,是SQL语言面向集合编程思想的集中体现,而子查询有很多变式,关联子查询技术是在实际中进行行与行之间的比较时非常重要的方法,特 ...

  6. mysql学习day05—子查询 / CASH语句 / 连接查询

    子查询 单行子查询:返回单行单列 多列子查询:返回单行多列(使用成对比较) 多行子查询:返回多行单列 相关子查询:子查询使用了外部SQL的某些表或列(但是外部SQL不可使用子查询中的表和列) 嵌套子查 ...

  7. sql大于某个时间_学习SQL-复杂查询

    练习一.创建每科课程的平均成绩视图 视图优点: 频繁使用的SQL语句可以保存在视图中,特别是在进行汇总以及特别的查询条件导致SQL查询语句特别庞大时候. 视图里的数据可以跟随原表的变化自动更新. 视图 ...

  8. 阿里云AI训练营SQL入门到实践 Task3:视图、子查询、函数等

    视图 视图是什么 视图是一个虚拟的表,视图是依据SELECT语句来创建的,所以操作视图时会根据创建视图的SELECT语句生成一张虚拟表,然后在这张虚拟表上做SQL操作. [外链图片转存失败,源站可能有 ...

  9. Oracle学习(八)——————————————子查询

    我先上两张表这便是我们这次用到的表 student表 SQL> select * from student;SNO SNAME SSEX SAGE SDEPT ---------- ------ ...

最新文章

  1. VTK:可视化之ElevationBandsWithGlyphs
  2. [导入]心平气和,千佳骈集;意粗性躁,一事无成
  3. PHP 社区拒绝在俄乌冲突中“站队”
  4. 前端学习(3045):vue+element今日头条管理-创建页面组件
  5. 【推荐】介绍两款Windows资源管理器,Q-Dir 与 FreeCommander XE(比TotalCommander更易用的免费资源管理器)...
  6. 小鱼一键重装系统win7教程
  7. c语言如何打印unicode字符,如何在C ++中打印Unicode字符?
  8. 急性中耳炎的治疗行业调研报告 - 市场现状分析与发展前景预测
  9. 团队项目需求分析——NABCD
  10. VBS脚本运行库 ——文本文件的建立、追加、删除等
  11. 【lpxt】笔者支招:九招搞定显示器黑屏
  12. unix下ODBC连接MySQL编程_通过unixODBC访问PostgreSQL数据库
  13. android /linux休眠与唤醒(一)
  14. 修复登录答题微信小程序源码下载
  15. 2022年计算机二级Python考哪些内容?
  16. 前端案例-30 Vue常用特性案例汇总
  17. solidworks管道设计教程
  18. 词频统计之《哈姆雷特》
  19. GitHub上真的有超过4000万软件开发人员吗?差远了!
  20. 数字疗法 | “接受”还是“拒绝”?心理治疗背后的数字干预

热门文章

  1. LeetCode: Median of Two Sorted Arrays 解题报告
  2. python 不同集合上元素的迭代 chain()
  3. Git基础-获取仓库、提交、查看历史、撤销
  4. 在CentOS 6.3中安装与配置JDK-7
  5. CentOS 6.4 Heartbeat+mysql+nfs实现高可用的mysql集群
  6. VIJOS-P1192
  7. 2012传统行业转型年:整合拓展互联网发展渠道
  8. python教程简易版_简洁的十分钟Python入门教程
  9. tcpdump抓包命令_tcpdump实战
  10. Oracle的存储过程和存储函数