当前位置:数据分析 > 数据库并集、交集、差集除外

数据库并集、交集、差集除外

  • 发布:2023-10-01 10:46

设置数据库操作

什么是设定操作

即表与表之间的运算,如表的加减法

并集(​​并集)、交集(相交)、补集(除了

联盟

在之前插入数据的研究中,我们创建了一张表customer,它和staff表是一样的。后来我们给它添加了一个数据。现在让我们使用 UNION。连接这两个表:

SELECT 名字, 姓氏
来自客户
联盟
SELECT 名字, 姓氏
FROM 工作人员

UNION实际上相当于集合的并集。它将返回两个表中的所有产品并删除重复项。结果不会有重复的行。但您也可以获得包含重复行的结果。只需在 UNION 之后添加关键字 ALL:

SELECT 名字, 姓氏
来自客户
UNION全部
SELECT 名字, 姓氏
FROM 工作人员

补充—除了

最后,我们来学习一下集合的差集运算——EXCEPT。其语法也与UNION相同。例如,查询customer中的数据,但未查询staff表中的数据:

SELECT 名字, 姓氏
来自客户
除了
SELECT 名字, 姓氏
FROM工作人员

UNIONINTERSECT的执行与表的顺序无关,即A UNION B和B UNION A一致。

但是差集运算与顺序有关,A EXCEPT B! = B 除了 A

相交—相交

语法与UNION完全相同:

SELECT 名字, 姓氏
来自客户
相交
SELECT 名字, 姓氏
FROM演员

请注意,INTERSECT 在 MySQL 中暂时不可用。 UNION的所有注意事项以及ALL关键字的用法与INTERSECT完全一样

设置操作注意事项

  • 待操作的记录列数必须一致。如果两个表的列数不同或者同一位置的列的数据类型不同,就会出现错误。

  • 作为操作数的记录中的列类型必须一致。如果两个表的列数不同或者同一位置的列的数据类型不同,就会出现错误。

  • 您可以使用任何 SELECT 语句,但 ORDER BY 子句只能在最后使用一次。下面是一个例子,查询两个表中厨房电器的ID号和产品名称并连接起来,最后按ID升序排序。 :

SELECT 名字, 姓氏
来自客户
相交
SELECT 名字, 姓氏
FROM 演员
订单 by id

相关文章