动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

union合并集合运算

08-26 17:10 104浏览
举报 T字号
  • 大字
  • 中字
  • 小字

对数据进行处理,是使用好java数据库一项重要能力,因为在数据库中存在着很多的数据,当我们想要找出某一个或一类的数据时,会借助数据查询的功能来实现。在数据运算中,union合并集合运算是其中的一项,下面我们来讲一讲union合并集合运算的相关知识点。

不管你是java程序员还是java零基础的小白,相信对集合这个概念一定不陌生。在集合论中,两个集合(A和B)的并集是一个包含集合A和B中所有元素的集合。换句话说,如果一个元素属于任何一个输入集合,那么它也属于结果集。union合并集合运算的概念也是相同的,union集合运算可以将两个输入查询的结果集组合成一个结果集,如果一个行在任何一个输入集合中出现,它也会在union运算的结果中出现。

对于union合并集合运算有以下三点需要注意

1参与集合运算的两个查询生成的结果集必须包含相同的列数,并且相应列必须具有兼容的数据类型

2集合运算结果中的列名由第一个查询决定,因此,如果要为结果列分配别名,应该在第一个查询中分配相应的别名

3集合运算对行进行比较时,认为两个NULL值相等。

union集合运算分为union allunion distinct两种情形,它们的区别是union all会保留重复行,而union distinct会删除重复行。

union all合并两个集合,并保留重复行。关于union all需要注意union all实际上不会对行进行比较,也不会删除重复行,它只是做个合并的操作而已

因为union all不会删除重复行,所以它的结果是多集,而不是真正的集合,因为相同的行在结果中可能出现多次。

SQL查询代码:

USE TSQLFundamentals2008;

GO

 

-- UNION ALL合并两个集合,并保留重复行

SELECT country,region,city FROM HR.Employees

UNION ALL

SELECT country,region,city FROM Sales.Customers

查询结果为:

union distinct会合并两个集合,但是它会删除重复行。对于union distinct需要注意从处理过程来看union distinct先合并多个集合为多集,再删除重复行变成集合从运算结果来看,union distinct是一个真正的集合,而不是多集。

SQL查询代码:

USE TSQLFundamentals2008;

GO

 

-- UNION(隐含DISTINCT)合并两个集合,但会删除重复行

SELECT country,region,city FROM HR.Employees

UNION

SELECT country,region,city FROM Sales.Customers

查询结果为:

将查询的结果集合并时要注意:合并结果集的时候,查询字段个数必须相同;查询字段类型MySQL中不必完全相同,但是Oracle中一定要类型也相同。例如:查询包含MANAGER 和SALESMAN 的员工信息

select * from emp where job = ‘MANAGER’and job = ‘SALESMAN’;

select * from emp where job in(‘MANAGER’, ‘SALESMAN’);

上面的内容就是对union合并集合运算的介绍,希望这篇文章可以帮助到大家,关于union allunion distinct两种情形要区分开,大家在学习了上面的知识点后,要自己实际操作练习几次,这样才能真正掌握union合并集合运算的操作,进而提高自己的java编程水平。

0人推荐
共同学习,写下你的评论
0条评论
代码小兵1123
程序员代码小兵1123

6篇文章贡献24102字

作者相关文章更多>

推荐相关文章更多>

MySQL开发规范

达芬奇09-04 11:38

必须掌握的30种SQL语句优化

不写代码你养我啊08-23 11:30

ES(Elasticsearch)支持PB级全文搜索引擎入门教程

HelloWorld09-29 17:28

Java面试中的hadoop面试题及答案整理

兔子06-15 17:15

数据库分类之速成篇

呵呵呀06-17 18:54

发评论

举报

0/150

取消