注意:

以下数据及T-SQL语句全部以该数据表为基础进行操作✈点击前往查看

使用T-SQL语句对数据表进行嵌套查询

  • 什么是嵌套查询
    • 单列查询
      • 多列多值嵌套查询
        • 带有 EXISTS谓词的子查询
          • 嵌套查询(子查询)实例

什么是嵌套查询

定义:在一个SELECT语句中的WHERE子句或HAVING子句中嵌套另一个SELECT语句的查询称为嵌套查询。其中,外层的SELECT查询语句叫外层查询或父查询,内层的SELECT查询语句叫内层查询或子查询。

在实际应用中往往一个 SELECT语句构成的简单查询无法满足用户全部的要求,而嵌套查询可以将多个简单查询构成复杂的查询,从而增强查询语句的查询能力,最终完成一些查询条件较为复杂的查询任务。

SQL语言允许多层嵌套查询,即一个子査询中还可以嵌套其他子查询。特别要注意,子查询的 SELECT语句中不能使用 ORDER BY子句, ORDER BY子句只能对最终查询结果即最外层查询的结果集进行排序。

子查询又分为不相关子查询和相关子查询。当子查询的查询条件不依赖于父查询时,这类子查询称为不相关子查询;当子查询的查询条件依赖于父查询时,这类子查询称为相关子查询。

单列查询

单列单值查询 : 子查询的查询字段只有一列,且符合条件的结果只有一个,即单列单值嵌套查询

  • 对于单列单值嵌套查询来说,我们用>=、>=、<=、!=或<>等比较运算符来连接父查询与子查询。

【例】查询选修“大学英语”的学生的学号与成绩。

SELECT s_id,grade           ##- -外层查询或父查询
FROM grade
WHERE c_id=(
SELECT c_id FROM course     ##- -内层查询或子查询
WHERE cname='大学英语')##子查询要嵌套在 WHERE子句或 HAVING子句中,并且用小括号括起来。

单列多值查询: 子查询的查询字段只有一列,且符合条件的结果是一个集合,即单列多值,这样的查询称为单列多值嵌套查询。

  • 由于子查询返回单列多值,因此,我们通常用关键词IN,ANY或ALL来连接父查询与子查询。

1、带有IN关键词的嵌套查询

  • IN关键词或 NOT IN关键词是用来确定查询条件是否在或不在查询条件的集合中。在带有IN关键词的嵌套查询中,子查询的结果可以不唯一。

2、带有ANY或ALL关键字的嵌套查询

  • 在进行单列多值的嵌套查询时,如果想要进行比较操作可以用ANY或ALL关键字配合比较运算符来实现。其使用格式为:
expression{ < < =  = > > = !=}{ ANY | ALL }( subquery)
expression {<|<= | = |>|>= |!=|<>|!<|!>} {ALL SOME\ ANY} {subquery}

参数说明:

expression:要进行比较的表达式

subquery:子查询

ANY:是对比较运算的限制,指任意一个值

ALL:指定表达式要与子查询结果集中的每个值都进行比较,当表达式与每个值都满足比关系时,才返回true,否则返回 false

SOME或ANY表示表达式只要与子查询结果集中的某个值满足比较的关系时,就返回TRUE,否则返回 FALSE

ALL:对比较运算的限制,指所有值。ANY或ALL关键字可以配合的比较运算符如下表所示

MySQL嵌套查询(子查询)相关推荐

  1. mysql所有班级名称和人数_mysql数据库优化课程---12、mysql嵌套和链接查询(查询user表中存在的所有班级的信息?)...

    mysql数据库优化课程---12.mysql嵌套和链接查询(查询user表中存在的所有班级的信息?) 一.总结 一句话总结: in:distinct:select * from class wher ...

  2. mysql数据库优化课程---12、mysql嵌套和链接查询(查询user表中存在的所有班级的信息?)...

    mysql数据库优化课程---12.mysql嵌套和链接查询(查询user表中存在的所有班级的信息?) 一.总结 一句话总结: in:distinct:select * from class wher ...

  3. 数据库学习之MySQL (十七)—— SQL99 主查询 与 子查询 子查询分类之WHERE的子查询

    文章目录 主查询 子查询 纲举目张--子查询的分类 WHERE语句后的 子查询 主查询 子查询 概念集中于SELECT语句 之前我们所学习的所有,都是SELECT作为独立的一句 是主干,是爸爸 后面跟 ...

  4. 与MySQL零距离—子查询与连接

    1.子查询简介 数据表的初始化: -- 创建数据表CREATE TABLE IF NOT EXISTS tdb_goods(goods_id SMALLINT UNSIGNED PRIMARY KEY ...

  5. mysql 什么是子查询_MySQL 子查询

    什么是子查询 为什么要使用子查询 子查询的分类 怎样使用子查询 关联子查询 要使用的数据表 image.png 1. 什么是子查询? 子查询顾名思义就是在正常查询之前先查询出来一条数据或者一个表. 子 ...

  6. mysql求和 子查询_MYSQL 查询方法 统计查询 链接查询 子查询

    mysql表格查询方法: 查询: 1.简单查询 select * from Info --查所有数据 select Code,Name from Info --查指定列的数据 select Code ...

  7. mysql update from 子查询

    2019独角兽企业重金招聘Python工程师标准>>> mysql update from 子查询 mssql 子查询更新 update log set uin= b.uin fro ...

  8. any在mysql语句中用法,MySQL中,子查询中可以使用运算符ANY,它表示的意思是______。...

    MySQL中,子查询中可以使用运算符ANY,它表示的意思是______. 答:至少一个值满足条件 According to your textbook, the main purpose of a s ...

  9. MySQL数据库多表查询,子查询

    写博客的第四天,今天来点数据库的操作,温故而知新,在前进的路上,多看看自己曾经走过的路,不要忘了自己是怎么一步一步走过来的,对于前方未知的道路,不要轻言放弃. 今天的内容全部是MySQL里面的语句,基 ...

  10. mysql左连接代码,mysql多表子查询与左连接的代码

    摘要 腾兴网为您分享:mysql多表子查询与左连接的代码,字体配置,邮币在线,英语字典,携程抢票等软件知识,以及cad弱电,adobe全套2018,万能格式转换器,360dns优选,音频制作app,上 ...

最新文章

  1. SSAS系列——【07】多维数据(查询Cube)
  2. servlet设置session追踪模式
  3. Linux 计划任务整理
  4. 云计算机玩大型游戏,云游戏实测点评:大部分都可以顺畅玩耍
  5. java内部类的使用
  6. 边缘计算、雾计算、云计算区别几何?
  7. [css] 说说你对媒体查询的理解
  8. python可变参数函数二阶导数公式_python中函数的可变参数
  9. pandas数据聚合与分组
  10. shell执行perl_TOOLFK工具-在线Perl代码执行工具
  11. 26个数据分析案例——第三站:基于python的药店销售数据分析
  12. Textview属性Kotlin.Android
  13. ORACLE有EXCEL中trend函数,EXCEL【TREND】函数,你知道如何使用吗?
  14. comsol学习中心:几何建模
  15. 制作网页所需的一些简单ps技巧
  16. since it exceeds Excel‘s limit of 65,530 URLS per worksheet
  17. C语言 输入一个不大于五位的数字,先判断是几位数字,然后将其数字顺序输出和逆序输出
  18. GetLastError()函数返回的值及含义
  19. 课题申请的技术指标是什么
  20. 使用SourceMonitor完成静态测试

热门文章

  1. TM1640调试时的异常问题
  2. 如何Ping特定端口号
  3. ping端口的方法 - win下
  4. 配电室配套设施轨道巡检机器人及辅助监控系统
  5. android led 字体下载,Android app全局字体设置
  6. matlab2010b和7.0,Matlab的安装(以matlab2010b和matlab7.0的安装方法为例)
  7. matlab高斯滤波去噪,图像平滑去噪之高斯滤波器
  8. Android+8.0+微信表情,微信8.0版本重大更新!emoji表情包动态化,安卓版也可以下载了...
  9. Euraka启动记录
  10. 百度网盘破解版Pandownload开发者被抓