如何在 SQL 中使用 union 和 union all

分类:编程技术 时间:2024-02-20 16:25 浏览:0 评论:0
0
本文主要介绍SQL中如何使用union和union all的相关知识。内容详细易懂,操作简单快捷,具有一定的参考价值。相信大家看完这篇文章就知道如何在SQL中使用union和union all了。我们有所收获,一起来看看吧。

概念

MySQL UNION运算符用于将两个或多个SELECT语句的结果组合成一个结果集。多个 SELECT 语句将删除重复数据。

UNION 运算符选择不同的值。如果允许重复值,可以使用UNION ALL

基本语法

-- unionSELECT column_name(s ) FROM table1UNIONSELECT column_name(s) FROM table2;-​​- union allSELECT column_name(s) FROM table1UNION ALLSELECT column_name(s) FROM table2;

注意:每个 SELECT 语句
UNION 内的列数必须相同

各列也必须具有相似的数据类型

每个 < 中的列顺序code>SELECT 语句必须相同

使用提示

我们发现使用 UNION 得到的结果必须是同样的,所以我们不得不提到两个关键字 inor

-- inselect * from users where name in ('sbc', 'bhy');-- orselect * from userswhere name = 'sbc' or name = 'bhy';select * from userswhere name = 'sbc' or tel = '123456';-- unionselect * from userswhere name = 'sbc'unionselect * from userswhere name = 'bhy';select * from userswhere name = 'sbc'unionselect * from userswhere tel = '123456';

通过user中的这些select语句表(用户)让我们比较一下

如果我们想要名为 sbc 或 bhy 的用户,我们可以使用 inorunion< /code >两者都可以实现

如果有数据量大了,差距就会很明显。如果name字段有索引,这些方法是相等的;但如果像的第二种情况写法,数据库会查找这两个字段的索引吗?答案是否定的。数据库只会查找一个字段的索引,而另一个字段则需要全局查询

遇到大量数据时这会花费很多时间,但是的第二种方法>union方法将引用Index两次。

差异

union:对两个结果集进行并集运算,排除重复行,相当于distinct,并执行同时按默认规则排序

union all:对两个结果集进行并集运算,包括重复行,即显示所有结果,无论是否是重复的;

提示
合并所有 o只合并查询结果,不进行去重和排序操作。在不进行重复数据删除的情况下,使用union all的执行效率比union高

这篇《如何在SQL中使用union和union all》这篇文章就到此为止。感谢您的阅读!相信大家对于“SQL中如何使用union和union all”都有一定的了解。如果您想了解更多知识,请关注行业资讯频道。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何在 SQL 中使用 union 和 union all

用户评论