数据库的交、并、差、笛卡尔积运算(代码实现)

article/2025/11/6 5:08:25

前言

关系代数是以关系为运算对象的一组高级运算的集合。由于关系定义为属性个数相同的元组的集合,因此集合代数的操作就可以引入到关系代数中。关系代数中的操作可以分为两类:传统的关系操作,并、差、交、笛卡尔积。
他们的图示可以表示为:
在这里插入图片描述

但是这样看可能不好理解,下面举例说明一下这些运算的用途。
**注:**这些运算都是对关系进行运算,就是离散中的关系表示为<a , b>,表示 a 关系 b ,关系是严格有序的,即<a , b>和<b , a>是不同的关系。所有运算的对象必须有相同的结构(先记忆,举例时说明)。

1. 并运算(UNION)

和离散中的并运算含义相同,即返回所有至少符合一个查询条件的部分。
在这里插入图片描述
下面举例说明:
学生表1
在这里插入图片描述

它可以对多个表进行查询也可以对单个表进行查询。
例如

(SELECT  学号, 姓名 FROM 学生表1 WHERE  性别 = '男' and 年龄 = 20)UNION
(SELECT  学号, 姓名 FROM 学生表1 WHERE  性别 = '女' and 年龄 = 19)

这段代码的含义是:在表(学生表1)中查询所有20岁的男生和所有19岁的女生的学号和姓名。
结果应如下:
在这里插入图片描述
它也可以对多个表查询。

(SELECT  学号, 姓名 FROM 学生表1 WHERE  性别 = '男')UNION
(SELECT  学号, 姓名 FROM 学生表2 WHERE  性别 = '男')

这段代码的含义是:查出两个表(学生表1,学生表2)中所有的男生。
结果应如下:
在这里插入图片描述
它也可以多个语句进行交运算。
例如:

(SELECT  学号, 姓名 FROM 学生表1 WHERE  性别 = '男')UNION
(SELECT  学号, 姓名 FROM 学生表2 WHERE  性别 = '男')UNION
(SELECT  学号, 姓名 FROM 学生表2 WHERE  年龄 = 18 and 性别 = '女')

同理,这个结果应为上次的结果加上(学生表2)中18岁的女生,这里就不画图了。感兴趣可以自己用DBMS软件调试。

2. 交运算(INTERSECT)

返回同时满足所有条件的结果。
在这里插入图片描述
它也是可以对多个表进行查询也可以对单个表进行查询。
还是用上个图举例
对单个表查询:

(SELECT  学号, 姓名 FROM 学生表1 WHERE  性别 = '男')
INTERSECT
(SELECT  学号, 姓名 FROM 学生表1 WHERE  年龄 = 18)

这段代码的含义是:查询表(学生表1)中所有18岁的男生的学号和姓名。
结果应如下:
在这里插入图片描述
对两个表查询:

(SELECT  年龄 FROM 学生表1 WHERE  性别 = '男')
INTERSECT
(SELECT  年龄 FROM 学生表2 WHERE  性别 = '女')

由于两个表中没有相交的学号和姓名,故查询年龄代替,含义为:表1中男生的年龄和表2中女生的年龄有哪些重叠的。
结果为下:
在这里插入图片描述
(测试环境:SQL server 2008 R2)

3. 差运算(EXCEPT)

查询在第一个条件里面但是不在后面的条件里面。
在这里插入图片描述
在这里插入图片描述
它也是可以对多个表进行查询也可以对单个表进行查询。


一个小插曲
在这里插入图片描述
在实验代码的时候发现minus一直报错,找了好久才知道minus是Oracle里面的语法,SQL server 应用 EXCEPT。


他也可以多语句同时使用,举例:

SELECT  学号 FROM 学生表1 WHERE  性别 = '男'
except
SELECT  学号 FROM 学生表1 WHERE  年龄 = 17
except
SELECT  学号 FROM 学生表1 WHERE  年龄 = 18

结果:
在这里插入图片描述

4. 笛卡尔积运算

笛卡尔积运算就是把两个集合中的元素重组一个大的一一对应的集合。
在这里插入图片描述
例如,A={a,b}, B={0,1,2},则

A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}

B×A={(0, a), (0, b), (1, a), (1, b), (2, a), (2, b)}

代码我暂时还不会写。多举两个例子助理解吧:
l表:

lidname
101北京
102太原
101NULL
102NULL

II表:

matidqtylidmname
100111101北京
200121102太原
100111102太原
100111102太原

结果:

lidnamematidqtylidmname
101北京100111101北京
102太原100111101北京
101NULL100111101北京
102NULL100111101北京
101北京200121102太原
102太原200121102太原
101NULL200121102太原
102NULL200121102太原
101北京100111102太原
102太原100111102太原
101NULL100111102太原
102NULL100111102太原
101北京100111102太原
102太原100111102太原
101NULL100111102太原
102NULL100111102太原

http://chatgpt.dhexx.cn/article/3OwNLX6R.shtml

相关文章

计算机二级中的9种运算问题:笛卡尔积,自然连接,交,并,选择,投影。。。

这九种运算分为7种二元运算 2种一元运算 用文字和例子来分别解释上面几个概念: 7种二元运算: 1.笛卡儿积: 已知 如果算X1和X2的笛卡尔积 则: …

文档--文档

我在《专业嵌入式软件开发》一书中指出&#xff0c;编写言简意骇的文档是实施高质高效软件开发的关键要素之一。在此结合自己的工作体会&#xff0c;再谈一谈软件开发活动中文档的重要性。切入正题之前&#xff0c;先让我们浏览二个工作场景。 A君刚加入一个代码规模超过百万行…

如何写好技术文档 - 来自 Google 十多年的文档经验!

星标/置顶 公众号????&#xff0c;硬核文章第一时间送达&#xff01; 本文大部分内容译自《Software Engineering at Google》 第10章节 Documentation。另外&#xff0c;该书电子版近日已经可以免费下载了 https://abseil.io/resources/swe_at_google.2.pdf&#xff0c;有…

在线文档 - Google 文档的数据协议设计

在线文档 - Google 文档的数据协议设计 Google 文档作为 G Suite 重要的产品套件之一&#xff0c;作为优秀的在线协作文档而经常被开发者所讨论&#xff0c;在 Google 文档背后&#xff0c;有着一整套优秀的相关架构设计支撑&#xff0c;数据协议设计就是其中之一&#xff0c;非…

Google Docs使用手册

转载: 木瓜教程之Google Docs使用手册 Google Docs 是一个基于Web的工具,它有跟Word相近的编辑界面,有一套简单易用的文档权限管理,而且它还记录下所有用户对文档所做的修改。 Google Docs的这些功能令它非常适用于网上共享与协作编辑文档。 Google Docs甚至可以用于监…

google 网上文档

向您的项目添加 C 和 C 代码 本文内容 下载 NDK 和构建工具创建支持 C/C 的新项目 构建和运行示例应用 向现有项目添加 C/C 代码 创建新的原生源文件创建 CMake 构建脚本将 Gradle 关联到您的原生库 搭配使用 Android Studio 2.2 或更高版本与 Android Plugin for Gradle 版本…

Google Docs Download - 快速批量下载 Google Docs 文档

Google Docs Download是Firefox 的 Greasemonkey 脚本&#xff0c;用来下载 Google Docs 文档&#xff0c;配合 DownThemAll 扩展&#xff0c;可实现批量下载 。 今天和 Google Docs 干上了&#xff0c;Google Docs Download 与 GDocBackup 不同之处在于&#xff0c;可选择性的…

Google-文档-在线编辑-ImportHTML函数

要点&#xff1a;抓取网页table数据 用法&#xff1a;ImportHTML(“URL”, "table", 0) URL是数据所在的网页&#xff0c; “table”是数据在网页上的显示方式&#xff08;如果是列表&#xff0c;也可以使用“list”&#xff09; “0”代表你要在哪个表如果网页上…

Google文档升级了!

今天登陆了下http://docs.google.com&#xff0c;发现Goolge文档已经升级了&#xff01; 不仅增加了可以在文件夹中添加文件夹的功能&#xff0c;而且还可以在不同的文件夹间复制和粘贴文件&#xff0c;附图如下&#xff1a; 如图所示&#xff1a; 我在“计算机本科生”的文件…

使用google翻译免费翻译文档,这里以pdf为例

使用google翻译免费翻译文档&#xff0c;这里以pdf为例 最新现在已经可以直接下载翻译文档了 1.将打开网站&#xff0c;将需要翻译的文件放进来2. 点击翻译&#xff0c;耐心等待一段时间3.打开WPS&#xff08;我用的wps&#xff0c;word应该也可以&#xff09;&#xff0c;然后…

Python-pygsheets模块(读写Google谷歌文档)

谷歌文档 1.登录谷歌文档 2.选择表格,转到Google表格&#xff0c;若此前没有登陆Google账号&#xff0c;会弹出登陆界面&#xff0c;进行登陆。 3.新建一个表格&#xff0c;并命名为testPygSheets,如图 谷歌API控制台 1.进入谷歌API控制台 2.创建新项目&#xff0c;随意…

在线文档 - Google drive

1.应用场景 主要用于在线协作以及记录数据 2.学习/操作 1.介绍 Google 在线文档 主要分为 Docs, Sheets, Slides, Forms 类同于Windows office Word, Excel, PPT 中文界面如下: 英文界面如下: 2.使用 帮助文档: https://support.google.com/a/users/answer/93000…

Structure of a Google Docs document 谷歌文档的结构

本文由 张驰 翻译&#xff0c;更新时间&#xff1a;2020-02-16 https://developers.google.com/docs/api/concepts/structure 谷歌文档的结构 本指南解释了 Google Docs 文档的内部结构&#xff1a;组成文档的元素以及这些元素之间的关系。 顶级元素 文档的顶级元素包括正…

Google 如何写设计文档

作者&#xff1a;Malte是Vercel的CTO。在此之前&#xff0c;Malte是负责谷歌搜索渲染的首席工程师&#xff0c;以及Search on Laptops, Tablets, 和Desktop的工程总监。 译者&#xff0c;许晓斌&#xff0c;现任阿里巴巴资深技术专家&#xff0c;《Maven实战》作者。 本文获得作…

在线文档方案---Google docs

1.介绍 谷歌文档包括在线文档、电子表格和演示文稿三类。用户可以轻易地执行所有的基本操作&#xff0c;包括编制项目列表、按列排序、添加表格/图像/注释/公式、更改字体&#xff0c;还有更多操作。它是完全免费的。Google 文档接受最常见的文件格式&#xff0c;包括 DOC、XL…

Google表格初学者指南

() If you’re just beginning to use Google Sheets, its extensive features and add-ons can be a bit overwhelming. Here are some tips to get you on the fast track to start using this powerful, free alternative to Microsoft Excel. 如果您刚刚开始使用Google表格…

直接在Google Chrome浏览器中查看文档和PDF

Would you like to view documents, presentations, and PDFs directly in Google Chrome? Here’s a handy extension that makes Google Docs your default online viewer so don’t have to download the file first. 您要直接在Google Chrome浏览器中查看文档,演示文稿和…

如何在Google文档中添加文本框

Adding a text box to a document is a great way to highlight relevant information—like a pull quote—and be able to move it around easily. Google doesn’t make adding one obvious, so here’s how to add a text box to a Google Docs file. 在文档中添加文本框是…

Axure原型图设计工具使用记录

Axure原型图设计工具使用记录 Axure快速入门&#xff08;01&#xff09; - 面板介绍 https://blog.51cto.com/u_15294985/3007677 Axure快速入门&#xff08;02&#xff09; - 入门例子&#xff08;登录案例&#xff09; https://developer.aliyun.com/article/1046689 Axu…

原型设计工具Quant-UX

什么是 Quant-UX &#xff1f; Quant UX 是一种研究、可用性和原型设计工具&#xff0c;可快速测试您的设计并获得数据驱动的洞察力。Quant-UX 使验证您的想法变得简单。使用 Quant UX 的可视化编辑器可在几分钟内创建一个交互式原型&#xff0c;感觉就像真正的应用程序一样。 …