Union、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 dname
1张三
2李四
2王五

表B:

i dage
120
229
330

定义

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

结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

·惊鸿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值