当前位置:   article > 正文

Oracel集合操作操作符:union(并运算),unionAll,intersect(交运算),minus(差运算)_union查询相当于集合运算的什么运算

union查询相当于集合运算的什么运算

SQL集合操作操作符:union(并运算),unionAll,intersect(交运算),minus(差运算)

说明:本文为本人笔记,不足之处,请谅解。如有错误,欢迎指出。

1.union(并运算)
union运算符可以将多个查询结果相加,并消除重复的行形成一个结果集,其结果相当于集合运算中的并运算。union的结果集是以第一条查询语句所查询的列名为列名(且其他的查询语句查询的列的数量要跟第一条查询语句相同)。举例:
错误:(要有相同数量的列
select id,name from A
union
select id from B
报错:[Err] 1222 - The used SELECT statements have a different number of columns

正确:
select id,name from A
union
select id,name from B

列名、列类型不一样,虽然可以执行,但是查出来的数据混在一起,貌似没用,所以推荐用上一种。

2.unionAll
unionAll和union的区别在于:union会处理重复的数据,只显示一条,而unionAll则是不管有没有重复数据,全部显示

3.intersect(交运算)
union可以算OR运算,而intersect比较像AND。mysql不支持intersect。
如:
select name from A  where name like "c%" or name like "s%" 
intersect
select name from B  where name like "c%" or name like "d%" 
结果集中只保留以c开头的name

4.minus(差运算)
minus集合运算符可以找到两个给定集合间的差集,即它会返回所有从第一个查询中返回的,但是没有在第二个查询中返回的记录
如:
select name from A  where name like "c%" or name like "s%" 
intersect
select name from B  where name like "s%" or name like "d%" 
结果集中只保留以s开头的name。





声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/793110
推荐阅读
  

闽ICP备14008679号