大家好,我是宁一。

今天讲解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 联合查询相关推荐

  1. 零基础自学SQL课程 | OUTER JOIN外连接

    大家好,我是宁一. 今天讲解SQL教程第12课:OUTER JOIN外连接. 外连接是左外连接(LEFT OUTER JOIN).右外连接(RIGHT OUTER JOIN).全外连接(FULL OU ...

  2. 零基础自学SQL课程 | DELETE 删除语句

    大家好,我是宁一. 今天是SQL课程的第十课. 讲讲DELETE 删除语句,用来删除表中的一条或多条记录. 基本语法: DELETE FROM <表名> WHERE <筛选条件> ...

  3. 零基础自学SQL课程 | 子查询

    大家好,我是宁一. 今天讲解SQL教程第18课:子查询. SQL语句可以嵌套,最常见的就是查询语句的嵌套. 基本语法: SELECT <字段名> FROM <表名> WHERE ...

  4. ORDER BY 排序子句 | 零基础自学SQL课程系列Day6

    大家好,我是宁一. 今天是SQL教程的第六课,来看看ORDER BY 排序子句. ORDER BY语句是用来排序的,后面跟的是字段名. 基本语法: SELECT <字段名> FROM &l ...

  5. WHERE条件子句 | 零基础自学SQL课程系列Day5

    大家好,我是宁一. 今天是SQL教程的第五课:来看看WHERE条件子句的用法. WHERE子句基本语法: SELECT <字段名> FROM <表名> WHERE <筛选 ...

  6. INSERT 插入语句 零基础自学SQL课程系列Day8

    大家好,我是宁一. 今天是SQL教程的第八课. 这节课讲讲 INSERT插入语句,用来像数据库中添加数据. 基本语法: INSERT INTO <表名> (列名)VALUES (值); 1 ...

  7. 零基础自学SQL课程 | SQL基本函数大全

    大家好,我是宁一. 今天是我们的第20课:SQL基本函数. MySQL中内置了很多函数,用来处理数值.字符串.日期等,这节课我们来讲讲有哪些常用的函数. 1.数值函数 -- ROUND(数值,保留小数 ...

  8. 零基础自学SQL课程 | IF函数

    大家好,我是宁一. 今天是我们的第22课:IF函数. 大家如果学过其他编程语言,应该对IF函数很熟悉了.用来根据条件,返回不同值. 基本语法: IF(条件表达式, 值1, 值2) 如果条件表达式为Tr ...

  9. sql注入 union联合查询注入(超详细)

    sql注入 union联合查询注入 我们以sqli-labs的第一关为例,来具体理解union联合查询注入的方法,理解每一步我为什么要这么去做. 好的,我们开始第一关! 首先查看sqli-labs第一 ...

  10. MySQL 基础———— UNION 联合查询

    引言 联合查询与连接查询不同,通过UNION 关键字,我们可以将多个查询语句一同执行并将结果集展示出来,不涉及到任何关联关系. UNION 的含义是"联合,并集,结合",在MySQ ...

最新文章

  1. pdf.js 远程预览pdf文件 Error: file origin does not match viewer's
  2. linux系统下设置oracle开机自动启动
  3. python泰勒展开_如何利用sympy对未知函数$f(x)$进行符号泰勒展开
  4. 使用VS code 创建 Azure Functions,从blob触发,解析,发送至Service Bus
  5. 让我们发展纯粹的金钱关系吧,那多美好(转)
  6. 360 支持linux版本下载地址,360安全浏览器国产稳定版本发布,提供deb软件包下载,附介绍...
  7. 物化视图(materialized view) 实现数据迁移、数据定时同步
  8. 我的python之行
  9. 操作系统学习笔记(一) 进程与线程模型
  10. html5swf小游戏源码,FLASH打方块小游戏及as3代码
  11. 高通MSM8953平台调整通话音量
  12. Windows下Pycharm专业版2021.2以及Anaconda安装教程
  13. 虚拟仿真实训教学管理及资源共享平台虚拟实训开发对接文档
  14. 数学建模:地貌图的完成
  15. TCP/IP Attack Lab(SEED实验)
  16. vue 中 用showdown预览markdown文件,并用highlight.js 实现代码高亮
  17. 编写python程序、计算账户余额_《计算机科学丛书PYTHON程序设计(原书第2版)/(美])凯.S.霍斯特曼》【价格 目录 书评 正版】_中国图书网...
  18. 一个1-23二进制搭建方法
  19. Microsoft IIS波浪号目录枚举/IIS短文件名枚举漏洞
  20. 摩尔定律(Moore's Law)

热门文章

  1. B2c运营方法,b2c商城系统源码
  2. 计算机桌面软件图标没了,手把手教你电脑桌面图标都不见了怎么办
  3. win10 初试tracert
  4. 孔夫子旧书网数据采集,举一反三学爬虫,Python爬虫120例第21例
  5. 加载配置文件(xml文件,properties文件)demo
  6. McAfee官方卸载工具下载及使用
  7. Oracle财务管理系统
  8. 热血江湖单机版不显示服务器,热血江湖单机版
  9. List<Map>转Map<String,List>
  10. Logback文件详解