oracle数据的连接方式

我们所看到的查询结果可以理解为是存在一张临时表中的。

一、on和where 的区别

   (1)on是在临时表生成使用的条件,不管on中的条件是否为真,都会返回左(左连接中)/右(右连接)边表中的全部记录

   (2)where是在临时表生成使用的条件,是对临时表进行过滤的条件,不满足条件的就会被过滤掉。

二、表连接的语法简写

                            全称

                    简称

 inner join  on          (内连接)

join  on           (连接)

 left  outer join  on   (左外连接)

left  join on     (左连接)

 right outer join  on (右外连接)

right join on   (右连接)

 full  outer join  on   (全外连接)

full  join on     (全连接)

三、表连接的总结

(1)inner join(内连接):在两张表进行连接查询时,只保留两张表中完全匹配的结果集。

     PS:单纯的select * from a,b是笛卡尔乘积。比如a表有3条数据,b表有3条数据,那么最后的结果有3*3=9条数据。如果对两个表进行连接查询:select * from a,b where a.id = b.id,(不推荐)相当于:select * from a inner join b on a.id = b.id。即内连接。

(2)left join(左连接):在两张表进行连接查询时,会返回左表所有的行,(即使在右表中没有匹配的记录),右表不匹配的行会以null的形式显示。

(3)right join(右连接):在两张表进行连接查询时,会返回右表所有的行(即使在左表中没有匹配的记录)左表不匹配的行会以null的形式显示。

(4)full join(全连接):在两张表进行连接查询时,不管是否匹配,都会返回左表和右表中所有的数据。相当于是left join和right join的并集。 

四、图例表示表连接中的结果集

(1)内连接

(2)左连接:右表中不匹配的数据将以NUll形式显示

(3)右连接:左表中不匹配的数据将以NUll形式显示

(4)全连接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值