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

一、概述

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

二、条件

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

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

三、并(UNION)运算

1、语法格式:

SELECT 语句1

UNION 【ALL】

SELECT 语句2

2、结果

两个SELECT语句并运算的结果就是两个查询结果中的元组,使用并运算进行集合查询在查询结果中会自动去除重复的元组,如果加上ALL关键词之后则会显示重复的元组

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.rhkb.cn/news/351358.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文速读,找找启发点】2024/6/16

ICME 2023 End-To-End Part-Level Action Parsing With Transformer 类似 DETR,通过 加 query的方式实现 端到端 ELAN: Enhancing Temporal Action Detection with Location Awareness 如何实现位置感知? > 重叠的卷积核? Do we really …

ubuntu18.04离线源制作

给客户部署有时需要纯内网环境,那这样就连不了网络。 一些包就下载不下来,而大家都知道用deb离线安装是非常麻烦的,各种依赖让你装不出来。 这里教大家打包源。 我准备2台机器,42和41 42可以联网,41不能联网。我想在…

抓包工具 Wireshark 的下载、安装、使用、快捷键

目录 一、什么是Wireshark?二、Wireshark下载三、Wireshark安装四、Wireshark使用4.1 基本使用4.2 过滤设置1)捕获过滤器2)显示过滤器 4.3 过滤规则1)捕获过滤器-规则语法2)显示过滤器-规则语法 4.4 常用的显示过滤器规…

Spring Security 与 JWT、OAuth 2.0 整合详解:构建安全可靠的认证与授权机制

Spring Security 与 OAuth 2.0 整合详解:构建安全可靠的认证与授权机制 将 JWT(JSON Web Token)与 OAuth 2.0 整合到 Spring Security 中可以为应用程序提供强大的认证和授权功能。以下是详细的整合步骤和代码示例。 1. 引入依赖 首先&am…

Docker:在DockerHub上创建私有仓库

文章目录 Busybox创建仓库推送镜像到仓库 本篇开始要学习在DockerHub上搭建一个自己的私有仓库 Busybox Busybox是一个集成了三百多个最常用Linux命令和工具的软件,BusyBox包含了很多工具,这里拉取该镜像推送到仓库中: 安装 apt install …

2012-2022年各省新质生产力指数数据(含原始数据+结果)

2012-2022年各省新质生产力指数数据(含原始数据结果) 1、时间:2012-2022年 2、指标:province、year、平均受教育年限、劳动者人力资本结构、高等院校在校学生结构、人均GDP元、在岗职工工资:元、三产从业人员比重、机…

python读取excel导入数据库

一、环境准备,安装包 pip install pandas openpyxl sqlalchemy二、数据准备 三、代码编写 from sqlalchemy import create_engine import pandas as pdclass GDPDataImporter:def __init__(self, db_type, dbapi, host, port, database, username, password):&quo…

[渗透测试学习] Runner-HackTheBox

Runner-HackTheBox 信息搜集 nmap扫描端口 nmap -sV -v 10.10.11.13扫描结果如下 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0) 80/tcp open http nginx 1.18.0 (Ubuntu) 8000…

Linux:线程池

Linux:线程池 线程池概念封装线程基本结构构造函数相关接口线程类总代码 封装线程池基本结构构造与析构初始化启动与回收主线程放任务其他线程读取任务终止线程池测试线程池总代码 线程池概念 线程池是一种线程使用模式。线程过多会带来调度开销,进而影…

AIRNet模型使用与代码分析(All-In-One Image Restoration Network)

AIRNet提出了一种较为简易的pipeline,以单一网络结构应对多种任务需求(不同类型,不同程度)。但在效果上看,ALL-In-One是不如One-By-One的,且本文方法的亮点是batch内选择patch进行对比学习。在与sota对比上…

React基础教程(07):条件渲染

1 条件渲染 使用条件渲染,结合TodoList案例,进行完善,实现以下功能: 当列表中的数据为空的时候,现实提示信息暂无待办事项当列表中存在数据的时候,提示信息消失 这里介绍三种实现方式。 注意这里的Empty是…

考研计组chap3存储系统

目录 一、存储器的基本概念 80 1.按照层次结构 2.按照各种分类 (41)存储介质 (2)存取方式 (3)内存是否可更改 (4)信息的可保存性 (5)读出之后data是否…

HTTP协议 快速入门

http概述 无状态性:HTTP是一个无状态协议,这意味着服务器不会在请求之间保存任何会话信息。每个请求都是独立的,服务器不会记住之前的请求。 请求-响应模型:HTTP通信是基于客户端发送请求和服务器返回响应的模型。客户端&#xf…

Python | 中心极限定理介绍及实现

统计学是数据科学项目的重要组成部分。每当我们想从数据集的样本中对数据集的总体进行任何推断,从数据集中收集信息,或者对数据集的参数进行任何假设时,我们都会使用统计工具。 中心极限定理 定义:中心极限定理,通俗…

Android低代码开发 - InputMenuPanelItem详解

我们知道MenuPanel是一个菜单面板容器,它里面可以放各式各样的菜单和菜单组。今天我们就来详细讲解输入菜单这个东西。 InputMenuPanelItem源码 package dora.widget.panel.menuimport android.content.Context import android.text.Editable import android.text…

系统集成项目管理工程师第9章思维导图发布

今天发布系统集成项目管理工程师新版第9章脑图的图片版

Nintex流程平台引入生成式人工智能,实现自动化革新

工作流自动化提供商Nintex宣布在其Nintex流程平台上推出一系列新的人工智能驱动改进。这些增强显著减少了文档化、管理和自动化业务流程所需的时间。这些新特性为Nintex流程平台不断扩展的人工智能能力增添了新的亮点。 Nintex首席产品官Niranjan Vijayaragavan表示&#xff1a…

使用React和GraphQL进行CRUD:完整教程与示例

在本教程中,我们将向您展示如何使用GraphQL和React实现简单的端到端CRUD操作。我们将介绍使用React Hooks读取和修改数据的简单示例。我们还将演示如何使用Apollo Client实现身份验证、错误处理、缓存和乐观UI。 什么是React? React是一个用于构建用户…

用python纯手写一个日历

一、代码 # 月份名称数组 months ["January", "February", "March", "April", "May", "June","July", "August", "September", "October", "November", &qu…

【Python/Pytorch - 网络模型】-- TV Loss损失函数

文章目录 文章目录 00 写在前面01 基于Pytorch版本的TV Loss代码02 论文下载 00 写在前面 在医学图像重建过程中,经常在代价方程中加入TV 正则项,该正则项作为去噪项,对于重建可以起到很大帮助作用。但是对于一些纹理细节要求较高的任务&am…