Union、Join语句

  • Union
    • 定义
    • 语法
  • Join
    • 示例表
    • 定义
    • 语法
      • 连接属性
        • [outer]join(内连接)
          • 定义
          • 例子
        • Left[outer]join (左[外]连接)
          • 定义
          • 例子
        • Right [outer]join(右[外]连接)
          • 定义
          • 例子
        • Full [outer]join(全[外]连接)
          • 定义
          • 例子
        • left semi join(左半连接)
          • 定义
          • 例子
        • cross join (笛卡尔关联)
          • 定义
          • 例子

Union

定义

1、Union 语句用于将多个select语句的结果集合并为一个结果集
2、连接的第一个select语句第一个字段集作为最终结果的字段集
3、连接的字段个数数据类型都必须保持一致

语法

--union[all|distinct]    all:全选   distinct:去重
select 语句1 union[all|distinct] select 语句2 union[all|distinct]

Join

示例表

表A:

i d name
1 张三
2 李四
2 王五

表B:

i d age
1 20
2 29
3 30

定义

Join语句主要是 基于两个或多个表,列之间的关系,并进行连接

语法

select 多个表显示的字段 from 表n1 连接属性 表n2 on 条件[如果没有on 就会进行笛卡尔积操作(两表行数乘积)]

连接属性

[outer]join(内连接)

定义

内连接只返回表相匹配的数据

例子
select a.id, a.name, b.age from a join b on a.id = b.id

结果:

Left[outer]join (左[外]连接)

定义

左外连接,关键字outer可以省略
意义一样,关键字左边的表称为主表返回的记录数主表的记录数,关联不上的字段设为null

例子
select a.id, a.name, b.age from a left join b on a.id = b.id

结果:

Right [outer]join(右[外]连接)

定义

右外连接,outer关键字可以省略。
以关键字右边的表为主表,记录数和主表相同,关联不上的字段设为null

例子
select a.id, a.name, b.age from a right join b on a.id = b.id

结果:

Full [outer]join(全[外]连接)

定义

全外关联,关键字outer可以省略
以两个表的记录为基准,返回两个表的记录去重记录之和,其中匹配不上的数据设为null

例子
select a.id, a.name, b.age from a full join b on a.id = b.id

结果:

left semi join(左半连接)

定义

left semi join左半连接,以关键字左边的表为主表,只返回key也在副表(关键字右边)中的记录

例子
select a.name, b.name from a left semi join b on a.id = b.id

结果:

cross join (笛卡尔关联)

定义

返回两张表的笛卡尔积结果,也就是返回两个表的记录行数乘积(表A的行数 * 表B的行数)

例子
select a.id, a.name, b.age from a cross join b

结果:

Union、Join语句相关推荐

  1. SQL Server中的Union和Union All语句之间的差异及其性能

    SQL Server中的Union和Union All语句之间的差异及其性能 UNION vs UNION ALL 了解union和union all语句之间的差异及其性能. UNION UNION命 ...

  2. mysql默认join是什么类型_MySQL:join语句类型

    MySQL:join语句类型 join从句的类型有以下几种: 内链接(inner) 右外连接(right outer) 左外连接(left outer) 全外连接(full outer) 交叉链接(c ...

  3. left join 一对多_MYSQL 连接查询算法:JOIN语句在 MYSQL 内部到底是怎么执行的

    前言 我们从一个问题引入今天的主题. 在日常业务开发中,我们可能经常听到 DBA 对我们说"不要"(注意:不是禁止)使用 join,那么为什么 DBA 对 join 这么抵触呢?是 ...

  4. mysql的join语句使用_在MySQL中使用JOIN语句进行连接操作的详细教程

    到目前,我们已经学习了从一个表中获取数据.这是简单的需要,但在大多数现实MySQL的使用,经常需要将数据从多个表中的一个单一的查询. 可以使用多个表中的单一SQL查询.在MySQL中联接(join)行 ...

  5. UNION JOIN 连接表

    9.4.5  UNION JOIN 连接表 使用UNION JOIN进行多表连接,与9.3节介绍的各种表的连接类型不同,它并不对表中的数据进行任何匹配处理,而只是把来自一个源表中的行与另一个源表中的行 ...

  6. 《MySQL——join语句优化tips》

    目录 要不要用join Join驱动表选择 Multi-Range Read优化 Batched Key Access (BKA)对NLJ进行优化 BNL算法性能问题 BNL转BKA 要不要用join ...

  7. SQLite | Join 语句

    文章目录 1. Join 1.1 表联合 1.2 内联合 1.3 左联合 1.4 其他联合类型 1.5 多表联合 1.6 分组联合 参考资料 1. Join 我们在上一篇中介绍了 Case 子句 ,接 ...

  8. sql join语句语法_SQL Left Join语句:示例语法

    sql join语句语法 对于本指南,我们将讨论SQL LEFT JOIN. (For this guide we'll discuss the SQL LEFT JOIN.) Using the k ...

  9. 关于mysql中Join语句的几个问题

    本文来说下关于mysql中Join语句的几个问题,JOIN语句在平时的开发中还是使用的非常多的 文章目录 概述 基本介绍 举个例子 一个注意点 Join原理 Simple Nested-Loop In ...

最新文章

  1. ai 临摹图片换背景_AI临摹绘制插画图片
  2. 请用理智的头脑和正确的途径关爱帮助灾区
  3. window环境中Jupyter notebook使用虚拟环境
  4. andriod studio 运行 无结果_无负压静音供水设备下篇一
  5. scrapy框架的日志等级和请求传参
  6. 简述人工智能的发展历程图_简述华强北airpods的发展历程
  7. BAT及各大互联网公司前端笔试面试题--Html,Css篇
  8. ec6108v9c短接j15_华为悦盒EC6108V9C变砖头,J16强刷不出现机器人,重点介绍解决问题!...
  9. 清除右键菜单多余的选项
  10. 【cvpr2022】CRIS: CLIP-Driven Referring Image Segmentation
  11. IOS 蓝牙相关-BabyBluetooth蓝牙库介绍(4)
  12. 扫宽、分辨率和扫描时间
  13. 《北京住房公积金提取管理办法 》
  14. 材料分享主题一:如何向上级汇报部门/组织架构
  15. Kafka:合理设置分区数
  16. python datetime时间差_高考倒计时,聊聊Python的GUI
  17. .net core 中使用confluent kafka构建生产者
  18. IO输入输出模型是每个Java开发人员必须理解的重点,深度解析跳槽从开始到结束完整流程
  19. 安全日志:/var/log/secure(转载 https://www.cnblogs.com/pzk7788/p/10184740.html)
  20. Sweet Home 3D 6.5 中文版 (装潢室内设计软件)

热门文章

  1. 2017-2018 ACM-ICPC Asia East Continent League Final (ECL-Final 2017)
  2. 瑞信CDP容灾备份如何实现断点续传
  3. pfSense book之入网门户
  4. 《八月的棒球甜心》:棒球少女·棒球联盟
  5. leetcode刷题02--求链表交点--T160
  6. Linux命令后面加
  7. 怎么去掉半透明上面的字_古代银票就一张纸,为何没人造假?你看看上面那行字,怎么造假?...
  8. 医用计算机模型,计算机制作模型
  9. 程序员英语二三事(1)
  10. 如何使用天天模拟器调试Android程序