您的位置:首页 > 数据库 > Oracle

Oracle基础——union与union all的用法与区别

2017-03-27 18:06 465 查看
用法:

    union和union all都可以用来对两个或多个查询结果进行并集操作,例如:

select * from Student1 union select * from Student2;

select * from Student1 union all select * from Student2。

    注意:union和union all 合并的两个或多个查询结果:列数、顺序相同;对应列的数据类型可以不同但是必须兼容(所谓的兼容是指两种类型之间可以进行隐式转换,不能进行隐式转换则报错),也可以用显式转换为相同的数据类型;如果为XML数据类型则列必须等价(所有列都必须类型化为 XML 架构,或者为非类型化),如果类型化,这些列必须类型化为相同的 XML 架构集合。

区别:

    1、UNION 在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。

    2、UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。

效率:

    UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: