零基础自学SQL课程 | UNION 联合查询

简介: 今天讲解SQL教程第13课:UNION 联合查询。前两节课讲的JOIN连接,可以对多个表进行横向列合并。这节课讲的UNION 操作符,是将多个查询结果,按行纵向合并。

今天讲解SQL教程第13课:UNION 联合查询。


前两节课讲的JOIN连接,可以对多个表进行横向列合并。


这节课讲的UNION 操作符,是将多个查询结果,按行纵向合并。


基本语法:


SELECT  <字段名>  FROM  <表名>
UNION
SELECT  <字段名>  FROM  <表名>


1、单张表联合查询


UNION 合并结果集的时候,如果合并的结果集中有重复行,只会保留其中一行。


实例: 查询出Students表中,将学生编号Sid为2到5的记录和1到3的记录通过UNION联合起来。


实例解析: UNION上面的结果集中有Sid为1、2、3的记录,UNION下面的结果集中有Sid为2、3、4、5的记录。UNION联合时,会只保留重复行(即Sid为2、3的记录)其中的一行。


SELECT * FROM Students
WHERE Sid BETWEEN 2 AND 5
UNION
SELECT * FROM Students
WHERE Sid BETWEEN 1 AND 3


image.png


如果想要保留所有重复行,可以使用UNION All合并结果集。


SELECT * FROM Students
WHERE Sid BETWEEN 2 AND 5
UNION ALL
SELECT * FROM Students
WHERE Sid BETWEEN 1 AND 3


image.png


2、不同表联合查询


UNION 操作符上下两个结果集的列数必须相等,否则会报错。


最终合并表的列名,由上面的结果集决定。


实例: 将Students表中,生日Sage在1995年之前出生的学生姓名Sname与Teachers表中老师姓名Tname合并。


SELECT Sname FROM Students
WHERE Sage < '1995-01-01'
UNION
SELECT Tname FROM Teachers


image.png

3、语句执行顺序


如果后面跟了ORDER BY、LIMIT子句,这些子句不是只作用于最后一个查询语句,而是会等UNION将结果集合并之后再执行。


SELECT * FROM Students
WHERE Sid BETWEEN 2 AND 5
UNION
SELECT * FROM Students
WHERE Sid BETWEEN 1 AND 3
ORDER BY Sid


image.png


ORDER BY 会等结果集合并之后,再给整个结果集排序,不是只作用于最后一个查询语句。


LIMIT子句也会等结果集合并之后,再取前几条记录。


SELECT * FROM Students
WHERE Sid BETWEEN 2 AND 5
UNION
SELECT * FROM Students
WHERE Sid BETWEEN 1 AND 3
LIMIT 2


image.png


下节课,我们来讲讲聚合函数。

目录
相关文章
|
11月前
|
SQL 数据格式
SQL 无法使用Union如何解决
SQL Server中使用UNION时,若字段含ntext类型会报错。可通过查询INFORMATION_SCHEMA.COLUMNS定位该字段,并用CAST转为nvarchar即可解决。
|
SQL 数据库
SQL UNION 操作符
SQL UNION 操作符
377 9
|
SQL 存储 关系型数据库
SQL自学笔记(3):SQL里的DCL,DQL都代表什么?
本文介绍了SQL的基础语言类型(DDL、DML、DCL、DQL),并详细说明了如何创建用户和表格,最后推荐了几款适合初学者的免费SQL实践平台。
804 3
SQL自学笔记(3):SQL里的DCL,DQL都代表什么?
|
SQL 数据挖掘 数据库
SQL自学笔记(2):如何用SQL做简单的检索
本文深入介绍了SQL的基本语法,包括数据查询、过滤、排序、分组及表连接等操作,并通过实际案例展示了SQL在用户研究中的应用,如用户行为分析、用户细分、用户留存分析及满意度调查数据分析。
357 0
SQL自学笔记(2):如何用SQL做简单的检索
|
SQL 数据挖掘 关系型数据库
SQL自学笔记(1):什么是SQL?有什么用?
本文为用户研究新手介绍SQL(结构化查询语言),解释了SQL的基本概念、入门方法及在用户研究中的应用通过实际案例说明,如用户行为分析、用户细分和满意度调查数据分析,展示了SQL在用户研究中的重要作用。
4238 0
SQL自学笔记(1):什么是SQL?有什么用?
|
SQL 安全 前端开发
Web学习_SQL注入_联合查询注入
联合查询注入是一种强大的SQL注入攻击方式,攻击者可以通过 `UNION`语句合并多个查询的结果,从而获取敏感信息。防御SQL注入需要多层次的措施,包括使用预处理语句和参数化查询、输入验证和过滤、最小权限原则、隐藏错误信息以及使用Web应用防火墙。通过这些措施,可以有效地提高Web应用程序的安全性,防止SQL注入攻击。
925 2
|
SQL 分布式计算 MaxCompute
SQL开发问题之对于ODPS中的UNION操作,执行计划的问题如何解决
SQL开发问题之对于ODPS中的UNION操作,执行计划的问题如何解决
415 7
|
SQL 分布式计算 资源调度
MaxCompute操作报错合集之执行SQL Union All操作时,数据类型产生报错,该怎么解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
493 1
|
SQL 数据库
SQL UNION 操作符
SQL UNION 操作符
178 3
|
Java 网络架构 数据格式
Struts 2 携手 RESTful:颠覆传统,重塑Web服务新纪元的史诗级组合!
【8月更文挑战第31天】《Struts 2 与 RESTful 设计:构建现代 Web 服务》介绍如何结合 Struts 2 框架与 RESTful 设计理念,构建高效、可扩展的 Web 服务。Struts 2 的 REST 插件提供简洁的 API 和约定,使开发者能快速创建符合 REST 规范的服务接口。通过在 `struts.xml` 中配置 `&lt;rest&gt;` 命名空间并使用注解如 `@Action`、`@GET` 等,可轻松定义服务路径及 HTTP 方法。
350 0

热门文章

最新文章