Union和Union All命令之间有什么区别?
这是棘手的SQL面试问题之一。采访者可能以另一种方式问您这个问题,因为“全联盟”优于“全联盟”有什么优势。
Union和Union All都将两个表的结果连接在一起,但是这两个查询处理重复表的方式不同。
联合:省略重复的记录,仅返回两个或多个select语句的不同结果集。
全部合并: 返回不同选择语句结果集中的所有行,包括重复项。
在性能方面,Union All比Union更快,因为Union All不会删除重复项。联合查询检查重复值,这会花费一些时间来删除重复记录。
假定:表1有10条记录,表2 有10条记录。两个表中的最后一条记录是相同的。
如果运行联合查询。
SELECT * FROM Table1UNIONSELECT * FROM Table2
输出:共19条记录
如果运行联合查询。
SELECT * FROM Table1UNION ALLSELECT * FROM Table2
输出:共20条记录
两个表中所有列的数据类型应相同。