当前位置: 首页 > 图灵资讯 > 技术篇> union合并集合运算

union合并集合运算

来源:图灵教育
时间:2023-04-14 09:52:40

处理数据就是好好利用。java数据库一个重要的能力,因为数据库中有很多数据,当我们想要找到一个或一个类别的数据时,它将通过数据查询的功能来实现。在数据操作中,union合并集合运算这是其中之一。让我们谈谈union合并集合运算的相关知识点。

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

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

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

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

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

union集合运算分为unionallunion distinct两者的区别在于两种情况unionall会保留重复行,但是union distinct重复行将被删除。

unionall合并两个集合,并保留重复行。关于unionall需要注意unionall事实上,它不会比较行,也不会删除重复行。它只是一个合并操作

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

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合并集合运算的介绍,希望本文能对您有所帮助,关于unionallunion distinct两种情形区分,在学习了上述知识点后,每个人都应该练习几次实际操作,以便真正掌握它union合并集合操作,然后提高自己java编程水平。