More SQL(Focus Subqueries、Join)
目录
Subqueries
Subqueries That Return One Tuple
Subqueries and Self Connection
The IN Operator
The Exists Operator
The Operator ANY
The Operator ALL
Union, Intersection, and Difference(交并差)
Bag Semantics
Controlling Duplicate Elimination
Inner Joins
Outer Joins
Subqueries
-
A parenthesized SELECT-FROM-WHERE statement (subquery ) can be used as a value in a number of places, including FROM and WHERE clauses.(将子查询的结果作为一张表进行查询)
-
Example: in place of a relation in the FROM clause, we can use a subquery and then query its result.
-
Must use a tuple-variable to name tuples of the result.(必须为子查询的这张临时表命名)
Subqueries That Return One Tuple
-
If a subquery is guaranteed to produce one tuple, then the subquery can be used as a value.
-
Usually, the tuple has one component.
-
A run-time error occurs if there is no tuple or more than one tuple.
例题:
子查询的优先级比父查询的优先级更高
Subqueries and Self Connection
思考题:是不是所有的额子查询都能够写成连接形式,又是不是所有的连接都能写成子查询形式?并且思考两者的效率如何?
The IN Operator
-
<tuple> IN (<subquery>) is true if and only if the tuple is a member of the relation produced by the subquery.(IN表达式正确当且仅当元组在子查询返回的结果中)
-
Opposite: <tuple> NOT IN (<subquery>).
-
IN-expressions can appear in WHERE clauses.
The Exists Operator
-
EXISTS(<subquery>) is true if and only if the subquery result is not empty.
-
Example: From Beers(name, manf) , find those beers that are the unique beer by their manufacturer.
SELECT name
FROM Beers b1
WHERE NOT EXISTS (SELECT *FROM BeersWHERE manf = b1.manf ANDname <> b1.name);
The Operator ANY
-
x = ANY(<subquery>) is a boolean condition that is true if x equals at least one tuple in the subquery result.(ANY语句为真当且仅当x与其中的至少一个元组相同)
= could be any comparison operator.(=可以是其他的运算符号)
Example: x >= ANY(<subquery>) means x is not the uniquely smallest tuple produced by the subquery.
-
Note tuples must have one component only.
The Operator ALL
- x <> ALL(<subquery>) is true if for every tuple t in the relation, x is not equal to t.
- That is, x is not in the subquery result.
<> can be any comparison operator.Example: x >= ALL(<subquery>) means there is no tuple larger than x in the subquery result.
Union, Intersection, and Difference(交并差)
Union, intersection, and difference of relations are expressed by the following forms, each involving subqueries:
-
(<subquery>) UNION (<subquery>)
-
(<subquery>) INTERSECT (<subquery>)
-
(<subquery>) EXCEPT (<subquery>)
要注意的是:UNION产生的结果是一个集合,集合是不允许出现重复元素的,但如果写法是(UNION ALL那么产生的结果是一个包,包中是允许重复元素的)
深入思考:交、并、差运算的前提应该都是排序,所以说在排序之后便直接产生了集合
Bag Semantics
- Although the SELECT-FROM-WHERE statement uses bag semantics, the default for union, intersection, and difference is set semantics.
- That is, duplicates are eliminated as the operation is applied.
Controlling Duplicate Elimination
- Force the result to be a set by SELECT DISTINCT . . .
- Force the result to be a bag (i.e., don’t eliminate duplicates) by ALL, as in . . . UNION ALL . . .
Inner Joins
SELECT buyer_name, sales.buyer_id, qty
FROM buyers INNER JOIN sales
ON buyers.buyer_id = sales.buyer_id
Outer Joins
SELECT buyer_name, sales.buyer_id, qty
FROM buyers LEFT OUTER JOIN sales
ON buyers.buyer_id = sales.buyer_id
SELECT buyer_name, sales.buyer_id, qty
FROM sales RIGHT OUTER JOIN buyers
ON buyers.buyer_id = sales.buyer_id
内连接和外连接的核心区别在于对于未匹配行的处理:
特性 | 内连接(INNER JOIN) | 外连接(OUTER JOIN) |
---|---|---|
匹配策略 | 仅保留两表中完全匹配的行 | 保留至少一个表的所有行,未匹配的部分用 NULL 填充 |
结果集大小 | 可能小于或等于参与连接的表的行数之和 | 可能等于或大于参与连接的表的行数之和 |
默认关键字 | JOIN (等价于 INNER JOIN ) | 必须显式指定类型(LEFT /RIGHT /FULL ) |
数据完整性 | 丢弃未匹配的数据 | 保留所有数据(通过 NULL 表示无匹配) |
相关文章:

More SQL(Focus Subqueries、Join)
目录 Subqueries Subqueries That Return One Tuple Subqueries and Self Connection The IN Operator The Exists Operator The Operator ANY The Operator ALL Union, Intersection, and Difference(交并差) Bag Semantics Controlling Dupl…...
项目部署react经历
简单的说: 1. 编译打包并压缩为压缩包 2. 将压缩包上传到服务器(这里以宝塔面板为例:www/wwwroot/目录下) 3. 将文件解压生成比如:www/wwwroot/ttms/build/* 多文件 4. php 项目建站,选择静态ÿ…...

从图像处理到深度学习:直播美颜SDK的人脸美型算法详解
在直播的镜头前,每一位主播都希望自己“光彩照人”。但在高清摄像头无死角的审视下,哪怕是天生丽质,也难免需要一点技术加持。于是,美颜SDK应运而生,成为直播平台提升用户粘性和视觉体验的重要工具。 尤其是在“人脸美…...
智能教育个性化学习路径规划系统实战指南
引言 在数字化教育革命中,如何利用AI技术实现"因材施教"的千年教育理想?本文将通过构建一个完整的智能教育系统,演示如何基于Python生态(Django机器学习)实现从数据采集到个性化推荐的全流程。系统将通过分…...
spark- ResultStage 和 ShuffleMapStage介绍
目录 1. ShuffleMapStage(中间阶段)1.1 作用1.2 核心特性1.3 示例2. ResultStage(最终结果阶段)2.1 作用2.2 核心特性2.3 示例3. 对比总结4. 执行流程示例5. 常见问题Q1:为什么需要区分两种 Stage?**Q2:如何手动观察 Stage 划分?Q3:ShuffleMapStage 的数据一定会落盘吗…...

zTasker一款Windows自动化软件,提升效率:大小仅有10MB,免费无广告
一、zTasker是什么? zTasker是一款发布于2023年9月的免费无广告工具,专为Windows用户打造。它以仅8MB的轻量体积、极低资源占用(内存消耗不足10MB)和秒级启动速度脱颖而出,堪称“任务计划程序的终极强化版”。无论是定…...
人工智能100问☞第34问:什么是语音识别与合成?
目录 一、通俗解释 二、专业解析 三、权威参考 在人工智能的世界里,“看、听、说、写”早已不是人类的专属技能。语音识别,让机器有了耳朵;语音合成,让机器长了嘴巴;合在一起,机器就开始“说人话、听人言”了。 一、通俗解释 1、语音识别:让机器听懂人说话 你有没…...

最大流-Ford-Fulkerson增广路径算法py/cpp/Java三语言实现
最大流-Ford-Fulkerson增广路径算法py/cpp/Java三语言实现 一、网络流问题与相关概念1.1 网络流问题定义1.2 关键概念 二、Ford-Fulkerson算法原理2.1 核心思想2.2 算法步骤 三、Ford-Fulkerson算法的代码实现3.1 Python实现3.2 C实现3.3 Java实现 四、Ford-Fulkerson算法的时间…...
怎么从一台电脑拷贝已安装的所有python第三方库到另一台
要将Python库从一台电脑拷贝到另一台,可以采用以下方法: 方法一:使用pip命令导出和安装依赖 如果目标电脑在线,且python与pip命令可以正常使用 在源电脑上,打开命令行,执行以下命令导出所有依赖库到requ…...

【测试】Bug和用例
软件测试贯穿于软件的整个⽣命周期 软件测试的⽣命周期是指测试流程,这个流程是按照⼀定顺序执⾏的⼀系列特定的步骤,去保证产品质量符合需求。在软件测试⽣命周期流程中,每个活动都按照计划的系统的执⾏。每个阶段有不同的⽬标和交付产物 Bu…...
缓存穿透、缓存击穿、缓存雪崩目前记录(纯日记)
今天学了学这三个知识,这命名真是有点东西。 1.先说在命名方面与其余两个内容能明显区分开的缓存雪崩,简单来讲: 缓存雪崩就是缓存宕机了,也甭管咋宕机了,反正就是某一时刻,缓存用不了了。 那咋办&#…...

鸿蒙OS的5.0.1.120版本体验怎么样?
点击上方关注 “终端研发部” 设为“星标”,和你一起掌握更多数据库知识 越来越是好用了,之前是凑合能用,现在是大多能用。 我朋友的mate30PRO和PuraX一起用,新系统确实满足我90%以上的需求 一个系统适配一款机型,是要…...

使用ssh-audit扫描ssh过期加密算法配置
使用ssh-audit扫描ssh过期加密算法配置 安装检查ssh的加密算法配置修改ssh的加密算法配置 安装 # pip3安装ssh-audit pip3 instal ssh-audit检查ssh的加密算法配置 # 检查ssh的配置 ssh-audit 192.168.50.149修改ssh的加密算法配置 # 查看ssh加密配置文件是否存在 ls /etc/c…...
前端工程化 Source Map(源码映射)详解
我们来深入讲解前端 Source Map(源码映射),围绕以下结构展开: 一、为什么要用 Source Map?(Why) 背景问题: 在前端构建中,源代码通常会被压缩(minify&#…...
2025.05.28-华为暑期实习第二题-200分
📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 02. A先生的旅游路径规划 问题描述 A先生正在为即将到来的假期规划一次城市旅游。这座城市有 n n n...

Java+Playwright自动化-2-环境准备与搭建-基于Maven
1.简介 上一章中已经讲如何通过引入jar包来搭建JavaPlaywright自动化测试环境,这一种是比较老的方法,说白了就是过时的老古董,但是我们必须了解和知道,其实maven搭建无非也就是下载引入相关的jar包,只不过相比之下是简…...

由sigmod权重曲线存在锯齿的探索
深度学习的知识点,一般按照执行流程,有 网络层类型,归一化,激活函数,学习率,损失函数,优化器。如果是研究生上课学的应该系统一点,自学的话知识点一开始有点乱。 一、激活函数Sigmod…...

二、OpenCV图像处理-图像处理
目录 1、连通性 2、形态学操作 2.1腐蚀和膨胀 2.2开闭运算 2.3礼帽和黑帽 2.4总结 3、图像平滑 3.1图像噪声 3.2均值滤波 3.3高斯滤波 3.4中值滤波 3.5总结 4、直方图 4.1直方图的原理与显示 4.2掩膜的应用 4.3直方图均衡化 4.4自适应均衡化 4.5总结 5、边缘…...

UPS的工作原理和UPS系统中旁路的作用
UPS(不间断电源)根据工作原理和适用场景的不同,主要分为以下三种类型,每种类型的特点和适用场景如下: 1. 后备式UPS(Offline/Standby UPS) 工作原理: 正常供电时,负载直接…...

麒麟系统 Linux(aarch64处理器)系统java项目接入海康SDK问题
1. 麒麟系统部署海康摄像头时的 JNA 链接错误, 海康提供的jna sdk版本太低,需升级版本4.5及以上,把集成的Structure 替换成以下类 public class SDK_Structure extends Structure {protected List<String> getFieldOrder() {List<St…...
深入理解数组索引:原理、应用与优化
在编程中,数组是一种最基本且广泛使用的数据结构。而数组索引则是访问数组元素的关键机制。本文将深入探讨数组索引的原理、应用以及优化方法,帮助读者更好地理解和使用数组索引。 一、数组索引的基本原理 数组是一种线性数据结构,它将一组…...
【洛谷P9303题解】AC- [CCC 2023 J5] CCC Word Hunt
在CCC单词搜索游戏中,单词隐藏在一个字母网格中。目标是确定给定单词在网格中隐藏的次数。单词可以以直线或直角的方式排列。以下是详细的解题思路及代码实现: 传送门: https://www.luogu.com.cn/problem/P9303 解题思路 输入读取与初始化&…...

Python图片格式批量转换器教程
📚 前言 编程基础第一期《11-30》-- 在图像处理工作中,我们经常需要将大量图片从一种格式转换为另一种格式。本教程将介绍如何使用Python的Pillow库开发一个简单但功能强大的图片格式批量转换器,帮助你高效处理图片格式转换任务。 目录 &…...

从公开到私密:重新思考 Web3 的数据安全
去中心化存储是 Web3 的基石之一,使用户和应用能够在无需依赖中心化服务商的情况下存储数据。但自由也带来了一个重大挑战:数据安全。在一个无许可的世界中,如何确保用户文档、游戏资产或 AI 数据集等敏感内容是私密的、可控访问的࿰…...

计算机网络常见体系结构、分层必要性、分层设计思想以及专用术语介绍
计算机网络体系结构 从本此开始,我们就要开始介绍有关计算机网络体系结构的知识了。内容包括: 常见的计算机网络体系结构 计算机网络体系结构分层的必要性 计算机网络体系结构的设计思想 举例说明及专用术语 计算机网络体系结构是计算机网络课程中…...

接口自动化测试用例的编写方法
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 phpunit 接口自动化测试系列 Post接口自动化测试用例 Post方式的接口是上传接口,需要对接口头部进行封装,所以没有办法在浏览器下直接调…...
解决Docker存储空间不足问题
虚拟机磁盘扩展实战:解决Docker存储空间不足问题 问题背景 在虚拟机中运行的Linux系统上,Docker服务因根分区空间不足而无法正常运行。初始状态如下: [rootlocalhost ~]# df -h / 文件系统 容量 已用 可用 已用% 挂载点…...

基于SpringBoot的商家销售管理网站的设计与实现
湖南软件职业技术大学 本科毕业设计(论文) 设计(论文)题目 基于SpringBoot的商家销售管理网站的设计与实现 学生姓名 学生学号 所在学院 专业班级 校内指导教师 企业指导教师 毕业设计(论文)真实性承诺及声明 学生对毕业设计(论文)真实性承诺 本人郑重声明:所提交的毕…...
【数据集】高分辨率(1 km)月尺度中国气候(降水+最高/低温)数据集(1952–2019)
目录 数据描述🧩 输入数据⚙️ 数据处理流程一、ChinaClim_baseline(基准气候表面)二、ChinaClim_time-series(时序气候数据)📊 评估与验证方法📤 数据下载月最低气温月最高气温python绘制代码参考论文《1 km monthly precipitation and temperatures dataset for Ch…...

word中表格拉不动以及插入图片有间距
1、word中表格插入图片始终有间隙,怎么调表格高度和宽度都消除不了间隙,如下所示: 可以在表布局—单元格边距—修改上下左右边距为0即可 2、经过上述调整后左右没有间隔了,但图片上下有间隔,直觉是行距问题,…...