UNION操作符是MySQL中非常实用的功能之一,它可以帮助我们将多个查询结果集中到一个结果集中,从而方便数据的展示和分析。接下来将详细介绍UNION操作符的语法结构、用法实例。
语法结构
SELECT column_name1,column_name2,… FROM table1
UNION
SELECT column_name1,column_name2,… FROM table2
其中column_name1,column_name2可以是列名,也可以是表达式;UNION 前后的列数量要一致;
table1,table2可以是同一张表,也可以是不同表;
上述语法结构写的是UNION两个SELECT查询,还可以UNION多个SELECT查询;
UNION 还可以换成UNION ALL,使用UNION的时候两个查询结果集的数据会进行去重,使用UNION ALL时不去重。
02
如何创建数据库和数据表见:
SQL创建数据库和数据表
数据分析师的日常,公众号:数据分析师的日常SQL创建数据库和数据表
2.1 从同一张表查询的结果,用UNION组合输出
比如从data_learning.product表中查询商品价格小于100,大于2000的记录,除了用WHERE子句+OR运算符外,还可以用UNION:
-- 从data_learning.product表中查询商品价格小于100,大于2000的记录
SELECT
*
FROM
data_learning.product
WHERE
price < 100
UNION
SELECT
*
FROM
data_learning.product
WHERE
price > 2000
;
以上语句效果同下面语句(WHERE子句+OR运算符):
SELECT
*
FROM
data_learning.product
WHERE
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_name
FROM
data_learning.product
WHERE
price < 20
UNION
SELECT
category_name
FROM
data_learning.product_category
;
查询结果如下:
使用UNION的好处是可以简化复杂的WHERE子句或者CASE WHEN子句。
需要注意的是:
比如从data_learning.product表中查询商品价格小于100,大于2000的记录,并按照价格降序排列输出结果:
-- 从data_learning.product表中查询商品价格小于100,大于2000的记录,并按照价格降序排列输出结果
SELECT
*
FROM
data_learning.product
WHERE
price < 100
UNION
SELECT
*
FROM
data_learning.product
WHERE
price > 2000
ORDER BY
price
;
03
简单总结下今天分享的内容。
首先,我们简单介绍了UNION操作符的基本语法结构,然后实用3个简单实例加深了UNION操作符的理解。
小伙伴们如果想要快速入门SQL或者MySQL的话,我向大家推荐一本广受欢迎的SQL经典畅销书籍——《SQL必知必会》。或者关注我,查看后续更新的SQL教程系列哦~
以上就是今天的分享,感谢观看!
欢迎关注我,一起学习数据知识,一起成长~
???