oracle中的连接查询

一.内连接

根据指定的连接条件进行连接查询,因此满足连接条件的数据才会出现在结果集。
两个表进行内连接查询时,先找到表1的第一条记录,然后从头到尾扫描表2,将符合连接条件的记录与表1第一条记录连接成结果;
当表2扫描一遍后,再从表1的第二条记录开始,从头到尾扫描表2,将符合连接条件的与表1第二条记录连接成结果…
先创建两张表。表1为TEST,表2为TEST_NEW。具体数据如下。最后一列(ROWID)可以忽略不计。
在这里插入图片描述
语法:
select * from 表1 inner join 表2 on 条件
示例:
select * from TEST t inner join TEST_NEW p on t.sfc=p.sfc
这样就将两张表的数据按照条件查询出来了。效果如下图:
在这里插入图片描述
当然,内连接还有另一种简单写法:
语法:select * from 表1,表2 where 条件
示例 :select * from TEST t,TEST_NEW p where t.sfc=p.sfc

二、外连接

外连接又分为左外连接和右外连接。下面分别来讲这两种外连接。
1.左外连接

在内连接基础上,将连接操作符左侧表不符合连接条件的记录加入结果集中,右侧表则用null填充。
语法:select * from 表1 left join 表2 on 条件
示例:select * from TEST t left join TEST_NEW p on t.sfc=p.sfc
效果:
在这里插入图片描述
不管是否符合条件,左表数据全部显示,右表数据根据条件显示。不满足条件的地方填充空。

2.右连接

右连接与左连接差不多,只是一个左一个右。右连接是显示右表所有数据,左表数据按条件显示,不满足的用空填充。
直接给示例:select * from TEST t right join TEST_NEW p on p.sfc=t.sfc
效果图:在这里插入图片描述
因为表2只有两条数据,且表1也有两条数据满足条件,所有没有填充空。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值