sql 联合

In the real world, there are cases when we would like to merge the result set from two different SELECT queries. For such cases, SQL has provided a feature called Union. The literal meaning of Union is to combine. SQL Union is also very similar to its literal meaning.

在现实世界中,有时候我们想合并来自两个不同的SELECT查询的结果集。 对于这种情况, SQL提供了称为联合的功能。 联合的字面意思是结合。 SQL Union也非常类似于其字面含义。

SQL联盟 (SQL Union)

SQL Union can be used to combine the result set of multiple queries. But, in order to use Union, there are a certain set of rules.

SQL Union可用于合并多个查询的结果集。 但是,为了使用联盟,有一些规则。

SQL Union的使用规则 (Rules for Usage of SQL Union)

  • The queries should have the same number of columns as part of the select query.查询应具有与选择查询相同的列数。
  • The data type for the result sets should be the same.结果集的数据类型应该相同。
  • Union uses column position for combination and not column name.联合使用列位置进行组合,而不使用列名称。
  • The column in each select query must be in the same order.每个选择查询中的列必须具有相同的顺序。

SQL Union的语法 (Syntax for SQL Union)

SELECT column_name FROM table1
UNION
SELECT column_name FROM table2;

SQL Union示例 (SQL Union Example)

Let us consider the following two table for SQL Union.

让我们考虑以下用于SQL Union的两个表。

Customer Table

客户表

Customer Id Customer Name State Country
1 John California United States
2 Henry Texas United States
3 Amit Karnataka India
顾客ID 顾客姓名 国家
1个 约翰 加利福尼亚州 美国
2 亨利 德州 美国
3 阿米特 卡纳塔克邦 印度

Supplier Table

供应商表

Supplier Id Supplier Name State Country
1 Apple California United States
2 Texas Instruments Texas United States
3 HCL Karnataka India
供应商编号 供应商名称 国家
1个 苹果 加利福尼亚州 美国
2 德州仪器 德州 美国
3 盐酸 卡纳塔克邦 印度

Here is the SQL query to create these tables and insert test data.

这是创建这些表并插入测试数据SQL查询。

CREATE TABLE `Customer` (`customer_id` int(11) unsigned NOT NULL,`customer_name` varchar(20) NOT NULL DEFAULT '',`state` varchar(20) NOT NULL DEFAULT '',`country` varchar(20) NOT NULL DEFAULT '',PRIMARY KEY (`customer_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE `Supplier` (`supplier_id` int(11) unsigned NOT NULL,`supplier_name` varchar(20) NOT NULL DEFAULT '',`state` varchar(20) NOT NULL DEFAULT '',`country` varchar(20) NOT NULL DEFAULT '',PRIMARY KEY (`supplier_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `Customer` (`customer_id`, `customer_name`, `state`, `country`)
VALUES(1, 'John', 'California', 'United States'),(2, 'Henry', 'Texas', 'United States'),(3, 'Amit', 'Karnataka', 'India');INSERT INTO `Supplier` (`supplier_id`, `supplier_name`, `state`, `country`)
VALUES(1, 'Apple', 'California', 'United States'),(2, 'Texas Instruments', 'Texas', 'United States'),(3, 'HCL', 'Karnataka', 'India');

Let’s look into some examples of SQL Union queries with these tables.

让我们来看一些使用这些表SQL Union查询示例。

  1. Union based on Country column.基于“国家/地区”列的联盟。
  2. Select state from Customer
    Union
    Select state from Supplier where Country = 'India';

    Output:

    输出:

    State
    California
    Texas
    Karnataka
    加利福尼亚州
    德州
    卡纳塔克邦

    In the above result-set, the states are combined from both the select queries. Also, duplicate results are eliminated.

    在上面的结果集中,将两个选择查询的状态组合在一起。 而且,消除了重复的结果。

  3. Union output order by state.按状态联合输出顺序 。
  4. Select state from Customer
    Union
    Select state from Supplier order by state asc;

    Output:

    输出:

    State
    California
    Karnataka
    Texas
    加利福尼亚州
    卡纳塔克邦
    德州

The output above is sorted post union based on the state in ascending order.

上面的输出是根据状态以升序排序后并集的。

SQL联合全部 (SQL Union All)

SELECT column_name FROM table1
UNION ALL
SELECT column_name FROM table2;

The major difference between SQL Union ALL and SQL Union is that SQL Union ALL allows duplicate values as part of the combination.

SQL Union ALL与SQL Union之间的主要区别在于,SQL Union ALL允许重复值作为组合的一部分。

SQL Union全部示例 (SQL Union All Example)

We will reuse the Customer and Supplier tables defined earlier.

我们将重用之前定义的Customer和Supplier表。

  1. SQL Union All based on Country column.SQL Union全部基于“国家/地区”列。
  2. Select state from Customer
    Union ALL
    Select state from Supplier where Country = 'India';

    Output:

    输出:

    In the above result-set, the states are combined from both the select queries. Also, duplicate results are not eliminated.

    在上面的结果集中,将两个选择查询的状态组合在一起。 同样,不会消除重复的结果。

  3. SQL Union All output order by state.SQL Union所有输出按状态排列。
  4. Select state from Customer
    Union ALL
    Select state from Supplier order by state asc;

    Output:

    输出:

    The output above is sorted post union based on the state in ascending order.

    上面的输出是根据状态以升序排序后并集的。

That’s all for SQL Union and Union All clause examples.

这就是SQL Union和Union All子句示例的全部内容。

翻译自: https://www.journaldev.com/23804/sql-union-all

sql 联合

sql 联合_SQL联合,SQL联合全部相关推荐

  1. 【SQL注入-03】union联合查询注入案例

    目录 1 union联合查询注入概述 1.1 简介 1.2 适用条件 1.3 注入步骤 1.4 注入技巧 2 union联合查询注入案例 2.1 操作环境 2.2 操作具体步骤 2.2.1 判断是否存 ...

  2. navicat循环执行上下两行相减sql语句_SQL太难?你离完全理解SQL就差这10步!

    - 点击上方"中国统计网"设置⭐星标不迷路!- 很多程序员视 SQL 为洪水猛兽.SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言.面向对象的程序语 ...

  3. mysql联合union查询_Mysql联合查询UNION和UNION ALL的使用介绍

    数据库 Mysql联合查询UNION和UNION ALL的使用介绍 字号+ 作者:小虾米 2016-12-05 12:47 Mysql的联合查询命令UNION和UNION ALL,总结了使用语法和注意 ...

  4. mysql多表查询sql优化_SQL多表查询优化

    SQL优化 1.执行路径:ORACLE的这个功能大大地提高了SQL的执行性能并节省了内存的使用:我们发现,单表数据的统计比多表统计的速度完全是两个概念.单表统计可能只要0.02秒,但是2张表联合统计就 ...

  5. oracle联合主键去重,联合主键的查询语句怎么写

    1.联合主键,SQL语句怎么写 建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍. 1.在数据库提供的GUI环境中建立(以SQL7为例). 输入表 ...

  6. sql编辑器_SQL的弱点(3):缺少静态类型检查

    静态类型检查的重要 如果要把SQL按照编程语言的类型来分类的话,SQL应该属于一种描述型的动态语言. 用动态语言编写的程序,当达到一定的复杂度后,相比强类型静态编译语言来说,更容易出问题. 从2个例子 ...

  7. mysql行转列sql函数_SQL 将行转化为列实现列的动态更新

    现有数据表: codenames type  flag zhao   a      y zhao   b      n zhao   c       y li     a      n li     ...

  8. mysql行转列sql函数_sql动态行转列的两种方法

    第一种方法: 代码如下: select *from ( select Url,case  when  Month=01 then  '1月' when  Month=02 then '2月' when ...

  9. navicat循环执行上下两行相减sql语句_SQL语句的优化分析

    一.开门见山,问题所在 sql语句性能达不到你的要求,执行效率让你忍无可忍,一般会时下面几种情况. 网速不给力,不稳定. 服务器内存不够,或者SQL 被分配的内存不够. sql语句设计不合理 没有相应 ...

最新文章

  1. 开源库Simd在vs2010中的编译及简单使用
  2. 【组队学习】【32期】吃瓜教程——西瓜书+南瓜书
  3. PNAS:水稻微生物组
  4. CentOS各个版本国内镜像下载地址,下载速度10M+
  5. Qt Quick测试
  6. java循环基础知识_java基础知识—循环结构
  7. 并发编程(读书笔记)
  8. vue中注意watch的执行顺序
  9. MapReduce实战(三)分区的实现
  10. 【TWVRP】基于matlab节约算法求解带时间窗的车辆路径规划问题【含Matlab源码 156期】
  11. 转载:IEEE1588 ( PTP ) 协议简介
  12. 雷电模拟器的一些命令
  13. 计算机图标到桌面,显示桌面图标不见了怎么办?显示桌面图标不见了解决方法...
  14. 浅谈什么是 云原生
  15. 步步学习自定义View:Hencoder 精简版学习笔记(一)
  16. “夜拍王”荣耀10GT上线,不用三脚架也能出夜景大片!
  17. simscape动力学仿真注意事项
  18. KST-51单片机利用HC138芯片驱动数码管显示
  19. 查找最相似的英文句子
  20. UML建模学成在线管理系统

热门文章

  1. 结对编程-黄金点游戏之旅[二]
  2. JVM学习之GC参数设置
  3. 2015最新Android学习线路图
  4. PHP在接下来的几年内将是主主流的
  5. Delphi【变体记录及存储方式】
  6. [转载] Python中对 Excel 的相关详细操作(读取、写入、指定行、指定列、新增sheet工作表)
  7. python基本操作(四)
  8. Vue.js 使用 Swiper.js 在 iOS 11 时出现错误
  9. 27_线程池_线程池实现原理
  10. iOS开源项目周报0302