集合并集运算(∪)与MySQL UNION

本文探讨了SQL中的UNION操作符与集合并集运算的相似性,通过实例展示了如何在MySQL中使用UNION来合并查询结果,并强调了UNION在处理重复数据时的行为与集合运算的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合并集运算(∪)与MySQL UNION

摘自维基百科关于集合的定义:

集合的特性:

  • 无序性:一个集合中,每个元素的地位都是相同的,元素之间是无序的。集合上可以定义序关系,定义了序关系后,元素之间就可以按照序关系排序。但就集合本身的特性而言,元素之间没有必然的序。

  • 互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。有时需要对同一元素出现多次的情形进行刻画,可以使用多重集,其中的元素允许出现多次。

  • 确定性:给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居其一,不允许有模棱两可的情况出现。

集合中没有重复元素

以前我一直以为两个集合的并集就是简单的把两个集合的元素合并。

A∩A=A  交集的同一律

最后来说一下sql中的UNION

UNION表示并集,应该也是符合集合的运算的。所以

mysql> select curriculum_alias from tb_curriculum_tag;
+------------------+
| curriculum_alias |
+------------------+
| 7MTbUY8TcLx41EX  |
| 7MTbUY8TcLx41EX  |
| 7MTbUY8TcLx41EX  |
| 5F9FAGvQi6BJJBd  |
| 5F9FAGvQi6BJJBd  |
| 5F9FAGvQi6BJJBd  |
| 5F9FAGvQi6BJJBd  |
| 5F9FAGvQi6BJJBd  |
+------------------+
8 rows in set

使用union-集合A并集合A还是集合A

mysql> select distinct curriculum_alias from tb_curriculum_tag;
+------------------+
| curriculum_alias |
+------------------+
| 7MTbUY8TcLx41EX  |
| 5F9FAGvQi6BJJBd  |
+------------------+
2 rows in set

mysql> select curriculum_alias from tb_curriculum_tag union select curriculum_alias from tb_curriculum_tag;
+------------------+
| curriculum_alias |
+------------------+
| 7MTbUY8TcLx41EX  |
| 5F9FAGvQi6BJJBd  |
+------------------+
2 rows in set

======END======

转载于:https://my.oschina.net/xinxingegeya/blog/225646

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值