union与union all的区别

union是将合并之后的结果进行去重记录,并显示;

union all是将所有的结果直接合并;

具体我们直接用案例来看一下,老规矩,我们先连接数据库,进入到数据库oaec中,查看我们的两张表格,一张员工表emp,一张部门表dept;union与union all的区别

union与union all的区别union与union all的区别

union与union all的区别连接数据库

练习:将两张表格的部门编号,合并起来;

首先试一下,union all,代码如下:

select deptno from emp

union all

select did from dept;

union与union all的区别

 

union与union all的区别合并两张表格的部门编号

这样就将,两张表格中的部门编号合并起来了,而且并未去重,我们用公式统计一下,这个实际有多少数值:

select count(*) from select deptno from emp

union all

select did from dept rel;

union与union all的区别

运行之后,得到的结果是9,则上面统计的是正确的;

union与union all的区别统计总共多少条记录

现在再试一下,union的结果:

 

union与union all的区别

union与union all的区别合并两张表的部门编号

这个结果只有3个,其实的数据都被去重了。在面试中,经常会问到这样的问题,所以各位,一定要记清两个的用法,具体应该用哪个,得根据实际工作中的需求去看,这个没有一个绝对的标准的。

实际上,这个知识点比较简单,但是之前就有同事一不小心就搞混淆了,所以这里特意和大家分享一下,若是有什么问题,欢迎给我留言或私信,我们一起分享,一起学习。