集合 和 表连接

本文深入探讨了SQL中的集合运行符,如intersect、minus、union及其变体unionall的功能和使用条件,以及各种表连接方式,包括笛卡尔积、inner join、left outer join、right outer join和full outer join的详细解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合运行符结论:
前提条件:
1、数据列的数量需要相等
2、数据列的相对应的类型需要一致或可以相互隐式转换

intersect 只显示重复的数据
minus 只显示第一个结果集中不相同的数据

union 显示第一个结果集中的所有数据 + 第二个结果集中的不同的数据
union all 显示 2 个结果集中所有的数据


表连接:
笛卡尔积(cross join):显示 2 个结果集的乘积 
+ 操作符:
    老的连接方式
     + 只能出现在 where 子句中,不能与 outer join 语法同时使用
     当使用 + 操作符执行外连接时,如果在 where 子句中包含有多个条件,则必须在所有条件中都包含 + 操作符
    + 操作符只适用于列,而不能用在表达式上
    + 操作符不能与 or 和 in  操作符一起使用
    + 操作符只能用于实现左外连接和右外连接,而不能实现完全外连接
    + 操作符所在的表为补充表,另一方为主表,会显示所有主表的数据 + 补充表符合条件的数据

inner join...on、join...on、=:
    内连接、等值连接 是一个意思,显示符合条件的值

join...using :关联连接
    2 个表中需要有相同的字段,且字段类型相同,关联的字段在使用时不能加别名;显示 using 关联字段的 2 个结果集中相同的数据

NATURAL JOIN:自连接
    会以两个表中具有相同名字的列为条件创建等值连接
    如果多个列名符合,都会做为条件
    不需要 on 条件

A left outer join B on(…) :左连接
    以A表记录显示为主,B表记录为补充.当A表记录在B表找不到对等记录时,B以NULL方式

A right outer join B on(…) :右外连接
    以B表记录显示为主,A表记录为补充.当B表记录在A表找不到对等记录时,A以NULL方式

full outer join…on():全外连接
    显示 左外连接 + 右外连接 - 重复值


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值