首页 / 自学资源

SQL数据合并 – UNION操作符

发布时间:2023-11-21 00:06:34

大家好,我是林赛~

UNION操作符是MySQL中非常实用的功能之一,它可以帮助我们将多个查询结果集中到一个结果集中,从而方便数据的展示和分析。接下来将详细介绍UNION操作符的语法结构、用法实例。             

01

语法结构

SELECT column_name1,column_name2,… FROM table1UNIONSELECT column_name1,column_name2,… FROM table2
  • 其中column_name1,column_name2可以是列名,也可以是表达式;UNION 前后的列数量要一致;

  • table1,table2可以是同一张表,也可以是不同表;

  • 上述语法结构写的是UNION两个SELECT查询,还可以UNION多个SELECT查询;

  • UNION 还可以换成UNION ALL,使用UNION的时候两个查询结果集的数据会进行去重,使用UNION ALL时不去重。

02

实例
这里通过表data_learning.product进行举例,data_learning是之前文章中创建的数据库。该表示例数据如下:    

如何创建数据库和数据表见:

SQL创建数据库和数据表

数据分析师的日常,公众号:数据分析师的日常SQL创建数据库和数据表

2.1 从同一张表查询的结果,用UNION组合输出

比如从data_learning.product表中查询商品价格小于100,大于2000的记录,除了用WHERE子句+OR运算符外,还可以用UNION:

-- 从data_learning.product表中查询商品价格小于100,大于2000的记录SELECT       *FROM       data_learning.productWHERE       price < 100UNIONSELECT       *FROM       data_learning.productWHERE           price > 2000;

以上语句效果同下面语句(WHERE子句+OR运算符):

SELECT       *FROM       data_learning.productWHERE       price < 100 OR price > 2000;

询结果如下(部分):

2.2 从不同的表中的查询结果组合后输出 

比如从data_learning.product表中查询商品价格小于20的商品名称和从data_learning.product_category表中查询category_name,并将两个数据合并后输出:

-- 从data_learning.product表中查询商品价格小于20的商品名称和从data_learning.product_category表中查询category_name,并将两个数据合并后输出SELECT       product_nameFROM       data_learning.productWHERE       price < 20UNIONSELECT       category_nameFROM       data_learning.product_category;

查询结果如下:    

使用UNION的好处是可以简化复杂的WHERE子句或者CASE WHEN子句。

需要注意的是:

  • UNION 会默认将最终的查询结果进行去重,如果不需要去重可以使用UNION ALL。
  • 上一篇文章分享的ORDER BY结合UNION或者UNION ALL使用时,只需要在最后加上ORDER BY,不需要每个SELECT后都加。

如从data_learning.product表中查询商品价格小于100,大于2000的记录,并按照价格降序排列输出结果:

-- 从data_learning.product表中查询商品价格小于100,大于2000的记录,并按照价格降序排列输出结果SELECT       *FROM       data_learning.product    WHERE       price < 100UNIONSELECT       *FROM       data_learning.productWHERE       price > 2000ORDER BY       price;

03

小结

简单总结下今天分享的内容。        

首先,我们简单介绍了UNION操作符的基本语法结构,然后实用3个简单实例加深了UNION操作符的理解。

小伙伴们如果想要快速入门SQL或者MySQL的话,我向大家推荐一本广受欢迎的SQL经典畅销书籍——《SQL必知必会》。或者关注我,查看后续更新的SQL教程系列哦~

以上就是今天的分享,感谢观看!


欢迎关注我,一起学习数据知识,一起成长~

???

 - END -

相关推荐