大家好,今天小编来为大家解答以下的问题,关于Oracle中union、union all和minus的区别,这个很多人还不知道,现在让我们一起来看看吧!
并集是求两个(或多个)集合的并集(不允许有重复元素),得到的集合为{1,2,3,4,5,6,7,8,9};
Union all 也求两个(或多个)集合的并集(允许有重复元素),结果集为{1, 2, 3, 4, 5, 5, 6, 7, 8, 9};
而减就是求两个集合之间的差异,是前一个集合减去重复元素的部分。结果集是{1,2,3,4};
我们先到数据库里看一下:
现在有B表和C表两个,C表数据如下:
现在我们执行以下三个sql:
select * from (从B中选择id并从C中选择id)
select * from (从B中选择id并从C中选择所有id)
select * from(从B 中选择id 减去从C 中选择id)
得到的结果如下:
结果和我描述的一致。
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/198702.html
用户评论
有一种中毒叫上瘾成咆哮i
讲得太明白了!我一直对这个搞不懂,现在终于清楚了。真的帮到我啦!
有15位网友表示赞同!
赋流云
我也是sql小白一枚,每天都遇到这样的问题。学习一下“union” , “union all”, 和"minus" 的区别,感觉比之前快很多了!
有20位网友表示赞同!
有恃无恐
这篇文章讲得很细致,能把不同情况的例子都罗列出来,太棒了!我试了一下,果然按照这种方法操作就能成功。学习了很多!
有19位网友表示赞同!
巴黎盛开的樱花
其实平时用到的多是union和union all,minus没怎么用到过,感觉可以多练习一下这个用法。看看能不能在实际项目中应用。
有8位网友表示赞同!
堕落爱人!
文章解释的挺准确的,图解也很清晰易懂,第一次看到“minus”指令的感觉还挺新奇的。以后得好好学习这几种语句的运用!
有9位网友表示赞同!
予之欢颜
我以为UNION和UNION ALL的区别很微妙,结果看了这篇博客才知道其实很简单啊,真是被自己吓傻了!
有18位网友表示赞同!
無極卍盜
感觉MINUS这个用法有点像setdiff()操作,可以用来比较两个集合的不同部分,实用性很高!
有20位网友表示赞同!
淡淡の清香
这篇文章讲的确实有道理,UNIONALL会把所有数据都合并,而UNION只取重复的数据。 这点很重要,有时候真的差很多。
有6位网友表示赞同!
信仰
看了这篇博文后,我对这些语句的使用方法有了更深的理解,感觉自己的SQL技能又提升了一层!
有13位网友表示赞同!
岁岁年年
这篇文章很有帮助,让我在查询操作中更加灵活!以后用UNION、UNION ALL和MINUS可以轻松掌握了!
有10位网友表示赞同!
夜晟洛
这个“minus”指令真的有点强大啊,之前都不知道怎么用,现在一看简直太好用啦!以后可以用来比对两个结果集的不同部分,真是太棒了!
有17位网友表示赞同!
话少情在
为什么“UNION ALL 的数据重复率更高一些”。我不是很理解,希望能解释下。
有5位网友表示赞同!
残留の笑颜
我一直在用的SQL都是UNION和UNION ALL,这个MINUS很少用,感觉是不是用的场景比较少?
有14位网友表示赞同!
减肥伤身#
终于明白"union all"不去重了!我还以为只有 "union" 才能去重. 感谢作者的解答!
有7位网友表示赞同!
失心疯i
文章讲解的很透彻,我之前对这些运算的理解并不清晰,现在终于搞明白了。
有14位网友表示赞同!
龙卷风卷走爱情
UNION 和 UNION ALL 的区别还是蛮重要的,很多时候我会在使用时混淆,感谢博主的分享!
有17位网友表示赞同!
黑夜漫长
学习一下SQL真不容易! 还要记住这么多不同的语句和用法,幸好有这篇博文帮我梳理一下。
有6位网友表示赞同!
反正是我
其实我经常遇到UNION问题,不知道为什么总是出现重复的数据,现在看了这个博文应该能解决我的问题了~
有8位网友表示赞同!