sql语句union用法,使用 union 语句的注意事项
大家好,今天小编来为大家解答以下的问题,关于sql语句union用法,使用 union 语句的注意事项这个很多人还不知道,现在让我们一起来看看吧!
sql语句union(sql语句unionall)
sql中union用于合并两个或多个SELECT语句的结果集。
需要注意,UNION内部的SELECT语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条SELECT语句中的列的顺序必须相同。
SQLUNION语法
SELECTcolumn_name(s)FROMtable_name1
UNION
SELECTcolumn_name(s)FROMtable_name2
以图中表格为例:
列出所有在中国和美国的不同的雇员名:
SELECTE_NameFROMEmployees_China
UNION
SELECTE_NameFROMEmployees_USA
结果
E_Name
Zhang,Hua
Wang,Wei
Carter,Thomas
Yang,Ming
Adams,John
Bush,George
Gates,Bill
这个命令无法列出在中国和美国的所有雇员。在上面的例子中,我们有两个名字相同的雇员,他们当中只有一个人被列出来了。UNION命令只会选取不同的值。
如果需要显示全部值,则使用UNIONall。
列出在中国和美国的所有的雇员:
SELECTE_NameFROMEmployees_China
UNIONALL
SELECTE_NameFROMEmployees_USA
sql查询语句UNION ALL是什么意思、、、
union all,解释为联合所有
Union解释为联合
union或者Union all实现把前后两个select集合的数据联合起来,组成一个结果集查询输出。
这就要求联合前后的结果集,需要分别有相同的输出字段的数目,并且对应的字段类型要相同。
SELECT column1, column2 from table1
union(all)
select column1, column2 from table2
以上语句要求量表的column1字段类型相同,column2类型相同。而且每个查询的数目都是一样的。
UNION ALL和UNION的差别就在ALL上面,第一个叫联合所有,说明会显示前后两个查询所有的数据,而UNION没有ALL(所有)这个单词,实现将前后两个查询的数据联合到一起后,去掉重复的数据显示。
比如
SELECT COLUMN1 FROM TABLE1的结果是
1
2
3
SELECT COLUMN1 FROM TABLE2的结果是
1
5
6
分别都是三行,那么UNION ALL的结果就是6行
1
2
3
1
5
6
而UNION会过滤掉上述结果中1的重复一行,结果是
1
2
3
5
6
五行结果
SQL中的UNION和UNIONALL有什么区别(sql中unionall的用法)
union将两个表连接后删除其重复的项。
unionall将两个表连接都不删除其重复的项。
补充资料:
数据库中,UNION和UNIONALL都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。
UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。如:
select*fromusers1unionselect*fromuser2
这个SQL在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。
而UNIONALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。
从效率上说,UNIONALL要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNIONALL,如下:
select*fromuser1unionallselect*fromuser2
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!