SQL中几种集合操作的对比介绍

举报
古月磊 发表于 2020/11/05 10:38:38 2020/11/05
【摘要】 SQL集合操作

UNION

UNION指令的目的是将两个SQL语句的结果合并起来,从这个角度来看,UNION跟JOIN有些许类似。

但UNION的一个限制是两个SQL语句所产生的结果列需要是保持一致。另外,UNION执行过程中会对结果进行去重处理,最终结果返回的是不同的值(类似SELECTDISTINCT)。



UNION ALL

UNION ALL这个指令的目的也是要将两个SQL语句的结果合并在一起。

UNION ALL和UNION的处理方式基本一致,所需的限制也是相同,不同之处在于UNION ALL不会对结果进行去重操作,只会将每一个符合条件的结果都列出来,无论结果值有无重复。



INTERSECT

同样和UNION指令类似,INTERSECT也是对两个SQL语句所产生的结果做处理的。

不同的地方是,UNION在处理逻辑上是一个OR的关系(如果这个值存在于第一句或是第二句,它就会被选出),而INTERSECT的处理逻辑则是AND的关系(这个值要存在于第一句和第二句才会被选出)。

简而言之,UNION是并集,而INTERSECT是交集。



MINUS

MINUS指令同样是运用在两个SQL语句上。

它先找出第一个SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果中,如果有的话,那这一个结果就被去除,而不会在最后的结果中出现,如果没有则会在最终结果显示。第二个SQL语句所产生的结果不管是不是在第一个SQL的结果中都不会在最终结果中显示。MINUS指令即相当于SQL1与SQL2的差集。



上面四种关联的语法均相同,如下格式:

[SQL 语句 1]

UNION | UNION ALL | INTERSECT | MINUS

[SQL 语句 2]

共同的限制点都是SQL 语句 1与SQL 语句 2所返回的查询结果列需保持一致。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。