当前位置: 首页 > news >正文

集合查询-并(UNION)集运算、交(INTERSECT)集运算、差(EXCEPT)集运算

一、概述

集合查询是对两个SELECT语句的查询结果进行再进行处理的查询

二、条件

1、两个SELECT语句的查询结果必须是属性列数目相同

2、两个SELECT语句的查询结果必须是对应位置上的属性列必须是相同的数据类型

三、并(UNION)运算

1、语法格式:

SELECT 语句1

UNION 【ALL】

SELECT 语句2

2、结果

两个SELECT语句并运算的结果就是两个查询结果中的元组,使用并运算进行集合查询在查询结果中会自动去除重复的元组

3、举例:查询选修了课程号为“001”或"002"的学生学号。

select sNo from sC where cNo='001'
union
select sNo from sC where cNo='002';

也可以使用一个SELECT语句来实现查询需求,但注意要用DISTINCE关键词去重

select distinct sNo
from sC
where cNo='001' or cNo='002'

四、交(INTERSECT)运算

1、语法格式:

SELECT 语句1

INTERSECT

SELECT 语句2

2、结果:

两个SELECT语句的查询结果进行交运算的结果是在两个SELECT语句中同时存在的元组的集合

3、举例:查询既选修了“001”课程又选修了“002”课程的学生学号

select sNo from sC where cNo='001' 
intersect
select sNo from sC where cNo='002';

4、使用单个的SELECT语句也可以满足查询需求

select sNo
from sC
where cNo='001' and sNo in(
select sNo
from sC
where cNo='002'
)

错误示例:

select sNo
from sC
where cNo='001' and cNo='002'

错因:一个元组在同一时刻同一属性只能为1个值,因此WHERE子句的运算结果始终为假

五、差(EXCEPT)运算

1、语法格式:

SELECT 语句1

EXCEPT

SELECT 语句2

2、结果:

两个SELECT语句的结果集进行差运算的结果是从第一个SELECT语句的结果集中去除第二个SELECT语句的结果集中存在的元组之后所形成的新的元组集

3、举例:查询选修了课程号为“001”但没选修“002”课程的学生学号

select sNo from sC where cNo='001'
except
select sNo from sC where cNo='002'; 

也可以使用一个SELECT语句来实现查询需求

select sNo
from sC
where cNo='001' and sNo not in(
select sNo
from sC
where cNo='002'
)

六、总结

1、集合查询体现了SQL语言对关系的操作能力

2、集合查询方式语义清晰,容易理解

3、不同的DBMS对集合查询的支持程度不同,语义动词可能会不一样,比如有的DBMS进行差集运算的语义动词是MINUS

http://www.lryc.cn/news/371381.html

相关文章:

  • 常用的bit位操作
  • 自动控制原理【期末复习】(二)
  • 机器学习——集成学习和梯度提升决策树
  • MYSQL 查看SQL执行计划
  • ARM-V9 RME(Realm Management Extension)系统架构之系统安全能力的MPAM
  • cuda 架构设置
  • 基于 Vue 3 封装一个 ECharts 图表组件
  • LeetCode 算法: 旋转图像c++
  • Java Android 静态内部类 以及优雅实现单例模式/避免handler内存泄漏
  • Flink协调器Coordinator及自定义Operator
  • C调用C++中的类
  • NFTScan 正式上线 Sei NFTScan 浏览器和 NFT API 数据服务
  • 2024年高考:计算机相关专业前景分析与选择建议
  • SQL聚合函数---汇总数据
  • webpack5新特性
  • java单体服务自定义锁名称工具类
  • 整理好了!2024年最常见 20 道并发编程面试题(四)
  • 持续交付一
  • 基于 Python 解析 XML 文件并将数据存储到 MongoDB 数据库
  • Interview preparation--案例加密后数据的模糊查询
  • 一个简单的R语言数据分析案例
  • springCloudAlibaba之分布式事务组件---seata
  • 无公网IP与服务器完成企业微信网页应用开发远程调试详细流程
  • CSS 字体颜色渐变
  • 【机器学习】基于CTC模型的语音转换可编辑文本研究
  • 数据结构错题答案汇总
  • 搞AI?中小企业拿什么和大厂拼?
  • 光伏电站阵列式冲击波声压光伏驱鸟器
  • Webrtc支持FFMPEG硬解码之解码实现(三)
  • RIP协议