零基础自学SQL课程 | 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
如果想要保留所有重复行,可以使用UNION All合并结果集。
SELECT * FROM Students
WHERE Sid BETWEEN 2 AND 5
UNION ALL
SELECT * FROM Students
WHERE Sid BETWEEN 1 AND 3
2、不同表联合查询
UNION 操作符上下两个结果集的列数必须相等,否则会报错。
最终合并表的列名,由上面的结果集决定。
实例: 将Students表中,生日Sage在1995年之前出生的学生姓名Sname与Teachers表中老师姓名Tname合并。
SELECT Sname FROM Students
WHERE Sage < '1995-01-01'
UNION
SELECT Tname FROM Teachers
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
ORDER BY 会等结果集合并之后,再给整个结果集排序,不是只作用于最后一个查询语句。
LIMIT子句也会等结果集合并之后,再取前几条记录。
SELECT * FROM Students
WHERE Sid BETWEEN 2 AND 5
UNION
SELECT * FROM Students
WHERE Sid BETWEEN 1 AND 3
LIMIT 2
下节课,我们来讲讲聚合函数。
点击关注,更新课程第一时间通知哦~
零基础自学SQL课程 | UNION 联合查询相关推荐
- 零基础自学SQL课程 | OUTER JOIN外连接
大家好,我是宁一. 今天讲解SQL教程第12课:OUTER JOIN外连接. 外连接是左外连接(LEFT OUTER JOIN).右外连接(RIGHT OUTER JOIN).全外连接(FULL OU ...
- 零基础自学SQL课程 | DELETE 删除语句
大家好,我是宁一. 今天是SQL课程的第十课. 讲讲DELETE 删除语句,用来删除表中的一条或多条记录. 基本语法: DELETE FROM <表名> WHERE <筛选条件> ...
- 零基础自学SQL课程 | 子查询
大家好,我是宁一. 今天讲解SQL教程第18课:子查询. SQL语句可以嵌套,最常见的就是查询语句的嵌套. 基本语法: SELECT <字段名> FROM <表名> WHERE ...
- ORDER BY 排序子句 | 零基础自学SQL课程系列Day6
大家好,我是宁一. 今天是SQL教程的第六课,来看看ORDER BY 排序子句. ORDER BY语句是用来排序的,后面跟的是字段名. 基本语法: SELECT <字段名> FROM &l ...
- WHERE条件子句 | 零基础自学SQL课程系列Day5
大家好,我是宁一. 今天是SQL教程的第五课:来看看WHERE条件子句的用法. WHERE子句基本语法: SELECT <字段名> FROM <表名> WHERE <筛选 ...
- INSERT 插入语句 零基础自学SQL课程系列Day8
大家好,我是宁一. 今天是SQL教程的第八课. 这节课讲讲 INSERT插入语句,用来像数据库中添加数据. 基本语法: INSERT INTO <表名> (列名)VALUES (值); 1 ...
- 零基础自学SQL课程 | SQL基本函数大全
大家好,我是宁一. 今天是我们的第20课:SQL基本函数. MySQL中内置了很多函数,用来处理数值.字符串.日期等,这节课我们来讲讲有哪些常用的函数. 1.数值函数 -- ROUND(数值,保留小数 ...
- 零基础自学SQL课程 | IF函数
大家好,我是宁一. 今天是我们的第22课:IF函数. 大家如果学过其他编程语言,应该对IF函数很熟悉了.用来根据条件,返回不同值. 基本语法: IF(条件表达式, 值1, 值2) 如果条件表达式为Tr ...
- sql注入 union联合查询注入(超详细)
sql注入 union联合查询注入 我们以sqli-labs的第一关为例,来具体理解union联合查询注入的方法,理解每一步我为什么要这么去做. 好的,我们开始第一关! 首先查看sqli-labs第一 ...
- MySQL 基础———— UNION 联合查询
引言 联合查询与连接查询不同,通过UNION 关键字,我们可以将多个查询语句一同执行并将结果集展示出来,不涉及到任何关联关系. UNION 的含义是"联合,并集,结合",在MySQ ...
最新文章
- pdf.js 远程预览pdf文件 Error: file origin does not match viewer's
- linux系统下设置oracle开机自动启动
- python泰勒展开_如何利用sympy对未知函数$f(x)$进行符号泰勒展开
- 使用VS code 创建 Azure Functions,从blob触发,解析,发送至Service Bus
- 让我们发展纯粹的金钱关系吧,那多美好(转)
- 360 支持linux版本下载地址,360安全浏览器国产稳定版本发布,提供deb软件包下载,附介绍...
- 物化视图(materialized view) 实现数据迁移、数据定时同步
- 我的python之行
- 操作系统学习笔记(一) 进程与线程模型
- html5swf小游戏源码,FLASH打方块小游戏及as3代码
- 高通MSM8953平台调整通话音量
- Windows下Pycharm专业版2021.2以及Anaconda安装教程
- 虚拟仿真实训教学管理及资源共享平台虚拟实训开发对接文档
- 数学建模:地貌图的完成
- TCP/IP Attack Lab(SEED实验)
- vue 中 用showdown预览markdown文件,并用highlight.js 实现代码高亮
- 编写python程序、计算账户余额_《计算机科学丛书PYTHON程序设计(原书第2版)/(美])凯.S.霍斯特曼》【价格 目录 书评 正版】_中国图书网...
- 一个1-23二进制搭建方法
- Microsoft IIS波浪号目录枚举/IIS短文件名枚举漏洞
- 摩尔定律(Moore's Law)