零基础自学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


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

目录
相关文章
|
2月前
|
SQL 数据库
20、绕过去除and、or、union select、空格的sql注入
20、绕过去除and、or、union select、空格的sql注入
30 0
|
6月前
|
SQL 数据库
达梦(DM) SQL查询及联合查询
继续讲解达梦(DM)数据库SQL查询操作
|
9月前
|
SQL
为什么两个执行很快的SQL,union之后特别慢
UNION获取两个数据集并返回唯一重叠。换句话说,它花费时间去除重复。 所以如果只是想取两个SQL的结果,改成使用union all,不会有去重操作 如果还是想去重,可以在union all之后再包一层查询,使用distinct
|
1月前
|
SQL 关系型数据库 MySQL
零基础快速自学SQL,2天足矣
零基础快速自学SQL,2天足矣
29 0
|
2月前
|
SQL 存储 数据库
【数据库SQL server】自学终极笔记
【数据库SQL server】自学终极笔记
93 0
|
4月前
|
SQL 数据库
深入理解 SQL UNION 运算符及其应用场景
SQL UNION运算符用于组合两个或多个SELECT语句的结果集。 每个UNION中的SELECT语句必须具有相同数量的列。 列的数据类型也必须相似。 每个SELECT语句中的列也必须按照相同的顺序排列。
51 1
|
9月前
|
SQL 索引
|
5月前
|
SQL
SQL联合查询
SQL联合查询
|
6月前
|
SQL Java 数据库
JSP课程管理系统选课myeclipse开发sql数据库web结构java编程
JSP 课程管理系统(成绩和选课) 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
35 0
|
6月前
|
SQL 测试技术 数据库
软件测试|SQL中的UNION和UNION ALL详解
软件测试|SQL中的UNION和UNION ALL详解
46 0