sql中的各类join连接的区别(natural join/inner join/left join/right join/full join)

设有表A和B,它们都具有一系列的列属性

1、自然连接 natural join

select <选择列>
from 表A natural join 表B

将表A和表B进行自然连接:在A和B所有共同属性上做等值连接,然后再投影去掉重复属性

例如:

select *
from book natural join reader

2、内连接 inner join

select <选择列>
frome 表A inner join 表B on <连接条件>

<连接条件> A.s θ B.k(s为表A的属性,k为表B的属性)
θ为等号=时,是等值连接;θ不为等号=时,是不等值连接;
将表A和表B进行内连接:当至少有一个满足连接条件时,返回满足条件的行。

例如:

select book_name
from book inner join reader on book.borrower_id=reader.id

3、外连接 outer join

(1)左外连接 left join
select <选择列>
from 表A left join 表B on <连接条件>

<连接条件>参考上文
将表A和表B进行左外连接:在自然连接的结果上,如果t是A中不满足连接条件的元组,则将t添加到结果中,并且t本身不存在的属性取NULL

(2)右外连接 right join
select <选择列>
from 表A right join 表B on <连接条件>

<连接条件>参考上文
将表A和表B进行右外连接:在自然连接的结果上,如果t是B中不满足连接条件的元组,则将t添加到结果中,并且t本身不存在的属性取NULL

(3)全外连接 full join
select <选择列>
from 表A full join 表B on <连接条件>

<连接条件>参考上文
将表A和表B进行全外连接:在自然连接的结果上,
1)如果t是A中不满足连接条件的元组,则将t添加到结果中,并且t本身不存在的属性取NULL
2)如果s是B中不满足连接条件的元组,则将s添加到结果中,并且s本身不存在的属性取NULL

  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值