嵌套查询(二)-谓词EXISTS实现嵌套查询

news2024/12/28 19:25:14

一、EXISTS谓词

1、作用:用于判断一个子查询的结果是否为空

2、使用语法:

【NOT】EXISTS(子查询)

语义:如果子查询的查询结果不为空,则EXISTS为真,否则为假

二、举例

1、举例1:查询选修“003”课程的学生姓名

select sN
from s
where exists(
select *
from sC
where sC.sNo=s.sNo and cNo='003'
)

 该子查询是一个相关子查询,用到了父查询中当前元组的属性值

2、举例2:查询没有选修“003”课程的学生姓名(NOT是逻辑运算符,用于对布尔表达式的结果取反)

select sN
from s
where not exists(
select *
from sC
where sC.sNo=s.sNo and cNo='003'
)

3、举例3:查询选修全部课程的学生的姓名

(1)分析:

选修全部课程的学生=没有一门课他不选的学生=每门课他都有选课记录的学生

(2)SQL语句:

select sN
from s
where not exists(
  select *
  from c
  where not exists(
    select *
    from sC
	where s.sNo=sC.sNo and c.cNo=sC.cNo
  )
)

第一层子查询和第二层子查询都是相关子查询,用到了当前父查询元组的属性值

4、举例4:查询所学课程包含学生“嫦娥”所学课程的学生的姓名

select sN
from s
where not exists(
  select *
  from sC x
  where sNo='202218014030'and not exists(
    select *
    from sC
	where s.sNo=sC.sNo and x.cNo=sC.cNo
  )
)

第一层子查询和第二层子查询都是相关子查询,并且第二层子查询与第一层子查询中用到了相同的表并且还在第二层子查询中使用到了两个表的属性值比较,因此至少要对其中一个表进行重命名操作

三、总结

1、使用谓词EXISTS可实现连接查询,以及其它方式的嵌套查询无法实现的SELECT查询

2、所用带IN谓词、比较运算符、ANY谓词ALL谓词的子查询都可以使用带EXISTS谓词的子查询来进行等价替换

3、嵌套查询是指在一个SELECT查询中嵌套另一个SELECT查询,增强了SQL语言的查询能力,层层嵌套的查询方式正是SQL语言的"结构化"特征所在

4、在实际应用中,应根据查询需求选择合适的查询嵌套方式,在相关子查询中一定要注意是否需要进行重命名操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1819209.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

有没有硅基生命?AGI在哪里?

摘要 随着科技的飞速发展,人工智能(AI)和生命科学的探索逐渐成为人们关注的焦点。其中,关于硅基生命的可能性与AGI(Artificial General Intelligence,即人工通用智能)的实现,更是引…

函数式开发接口( Consumer、Function)在实际开发中的应用场景

之前有个扫码下载文件需求,由于要同时进行记录下载人的记录。一开始用的是异步进行日志记录。发现有的用户扫码下载了一次文件,日志记录了三条。这种很容易联想到是因为网络抖动造成的。 问题代码 由于日志记录是异步的,文件下载需要时间。同…

场外期权能不能开户?场外期权在哪里开?

今天带你了解场外期权能不能开户?场外期权在哪里开?近年来,场外期权交易在金融市场上逐渐盛行起来。有许多人对于场外期权的开户问题感到困惑。 场外期权能不能开户? 资质要求: 个人投资者需要具备一定的金融知识和投…

Excel根据身份证号提取信息

概览 本篇文章主要对根据身份证号码提取出生年月日、年龄、性别、退休年龄这三项进行讲解。 一. 提取出生年月日 公式:TEXT(MID(B2,7,8),“0000-00-00”) MID(B2,7,8):表示从单元格 B2 中的字符串(这里是身份证号)&#xff0c…

SolarONE:新一代开放灵活高效的车载网络仿真测试软件

在当前汽车设计中,车载总线系统扮演着至关重要的角色,它连接了车辆内部的各种电子控制单元(ECU),实现了数据的传输与交换。为了更好地理解和优化车载总线系统,软件工具的使用变得至关重要。 本文将介绍一款…

二十三、生成帮助文档

二十一、Java工具类的创建 二十二、Jar包制作及使用 这一篇开始学习如何生成帮助文档。为什么要学习生成帮助文档? 1、工具类已经制作好了,Java工具类的创建的类是一个.java文件,编译后成.class文件看不懂,所以需要对应的帮助文档…

光伏电站阵列式冲击波声压光伏驱鸟器

光伏电站内鸟群的聚集可不是一件好事,鸟类排泄物,因其粘度大、具有腐蚀性的特点,一旦堆积在太阳能板上,会严重影响光伏电站的发电效率。长期积累的鸟粪不仅难以清洗,还可能引发组件的热斑效应,严重时甚至可…

大模型推理优化

什么是大模型推理 **大模型推理其实就是大模型如何输出,怎么输出,输出什么的过程。**在人工智能的基础模型下,各种推理任务涵盖了多个领域,包括常识推理、数学推理、逻辑推理、因果推理、视觉推理、听觉推理、多模态推理和代理推…

【SpringBoot+Vue】后端代码学习记录——登录功能开发

参考资料 https://www.cnblogs.com/three-fighter/p/14332288.html 零、前端开发 略。之前有过。 一、后端开发 1、统一结果封装 创建了一个 Result 类,用于异步统一返回的结果封装。一般来说,结果里面有几个要素必要的 是否成功,可用 c…

哪个牌子的儿童护眼灯好?五款平价护眼台灯推荐

护眼台灯在近年来成为家长和长时间使用电子设备人群关注的家电/学生产品。对于家中有孩子或经常面对电子屏幕的人士来说,很多人可能已经对这类产品有所了解并进行了购买。然而,部分家长对护眼台灯的认识还不够深入,因此尚未为孩子选择一款合适…

怎么写自动注册苹果ID的工具,会用到哪些源代码?

在数字化时代,苹果ID成为了连接苹果生态系统中各项服务的关键桥梁,然而,手动注册苹果ID的过程往往繁琐且耗时,因此,开发一款能够自动注册苹果ID的工具成为了许多开发者的追求。 本文将科普如何编写这样的工具&#xf…

每日一练:攻防世界:Misc文件类型

给了一个txt文本文件,因为题目是文件类型,我先开始一直在想关于文件头的知识。 这串数据看着像十六进制数据,我就直接把他转ASCII了 反转一下就是base64,因为base64没有_,所以去掉46ESAB_,base64解码Hex试…

【游戏】一款纯web集前后端为一体的沙盒游戏框架介绍

1.biomes-game是什么? 一款基于MIT协议开源沙盒 MMORPG。游戏中可建造、采集、玩迷你游戏等等,所有操作均可通过浏览器完成。它主要使用React框架,前后端用 Typescript 和 WebAssembly 编写。 2.如何本地体验? 配置:…

简约不简单,建筑装饰演绎现代美学

走在城市的大街小巷,你是否曾被那些独特而精美的建筑装饰所吸引?每一栋建筑都像是艺术家的杰作,通过精美的装饰诉说着它的故事。 我们的建筑装饰,不仅注重外在的美观,更追求内在的品质。从古典的雕花到现代的简约线条&…

干货下载 |《数据治理:数据中台建设与能力提升策略》

在当今这个信息爆炸的时代,数据已经成为企业最宝贵的资产之一。数据不仅能帮助企业洞察市场趋势,还能优化业务流程,提升运营效率,进而在激烈的市场竞争中占据优势地位。然而,如何有效地管理和利用这些数据,…

Qt篇——-1: error: fatal error: no input files问题解决

有时在pro或pri中引用的文件被删除或重命名后,会导致pro或pri文件中自动出现两个连续的//,这将导致我们编译时提示:-1: error: fatal error: no input files。 这是因为qmake 语法里每增加一个源文件或一个配置用一个斜杠结束&#x…

高速直线导轨驱动与控制,精准稳定的运动核心元件

直线导轨在工业生产中,精度和稳定性是至关重要的。而在各种机械设备中,高精度直线导轨是提高设备运动控制精度和平稳性的核心部件,当我们考虑高速运动时,直线导轨的精度和稳定性是非常重要的因素。 直线导轨系统中如何确保高速运动…

计算机网络 —— 运输层(四次挥手)

计算机网络 —— 运输层(四次挥手) 四次挥手客户端到服务器的关闭第一次挥手第二次挥手 服务器到客户端连接的关闭第三次挥手第四次挥手 等待时间的必要性 我们今天来看TCP协议的四次挥手: 四次挥手 TCP的四次挥手(Four-Way Han…

TikTok网红营销指南 | 怎么找到TikTok网红并进行合作?

如果你打算在tiktok上进行营销,忽略与tiktok网红合作无异于错失良机,时尚博主Sophia仅用一条30秒的视频展示了自己从一家新兴品牌购买的连衣裙,视频迅速获得了数百万的点赞和评论,也让该品牌的销量翻了好几倍。 这种与网红合作的策…

TIM—通用定时器高级定时器

通用/高级定时器的功能 在基本定时器功能的基础上新增功能: 通用定时器有4个独立通道,且每个通道都可以用于下面功能。 (1)输入捕获:测量输入信号的周期和占空比等。 (2)输出比较:产…