【Oracle_SQL】oracle常用连接

本文深入讲解Oracle数据库中常用的外连接类型,包括左外连接、右外连接和全外连接,并通过实例演示每种连接方式的具体效果,帮助读者理解并掌握Oracle连接查询技巧。

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

oracle常用外连接

oracle常用连接2

数据版本:11.2.0.4

解释:
类型              关键字                          含义

内连接            inner join/join            只连接匹配的行

左外连接        left join                      左边的表为主表,主表的全部数据显示;
                                                       右边的表只显示符合条件的,不符合条件的以空值显示

右外连接        right join                    与右连接相反,即右边的表为主表,主表的全部数据显示;
                                                        左边的表只显示符合条件的,不符合条件的以控制显示

全外连接        full join                      显示左右两表的并集,即左右表匹配的数据以及左右两表没有匹配的数据也显示

例子:

创建两个表test_a和test_b来看看具体的效果,语句如下:
create table test_a(tno int,tname varchar2(20));
create table test_b(tno int,tname varchar2(20));

insert into test_a values(1,'a');
insert into test_a values(2,'b');
insert into test_b values(2,'c');
insert into test_b values(3,'d');
commit;

--inner join/join
语句:
select a.tno ano,a.tname aname,b.tno bno,b.tname bname from test_a a
inner join test_b b
on a.tno = b.tno;
结果:

  ANOANAMEBNOBNAME
2b2c

注:由此可看出只显示两个表共同拥有tno的数据行,即只显示匹配的数据;

语句(去掉inner):
select a.tno ano,a.tname aname,b.tno bno,b.tname bname from test_a a
join test_b b
on a.tno = b.tno;
结果:

  ANOANAMEBNOBNAME
2b2c

注:其结果跟带inner 的join一样,由此可知两者等效。

--left join
语句:
select a.tno ano,a.tname aname,b.tno bno,b.tname bname from test_a a
left join test_b b
on a.tno = b.tno;
结果:       

  ANOANAMEBNOBNAME
2b2c
1a  

                             

注:显示左边表的全部数据以及右边表符合条件的数据。

--right join
语句:
select a.tno ano,a.tname aname,b.tno bno,b.tname bname from test_a a
right join test_b b
on a.tno = b.tno;
结果:

  ANOANAMEBNOBNAME
2b2c
  3d

注:显示右边表的全部数据以及左边表符合条件的数据。

--full join
语句:
select a.tno ano,a.tname aname,b.tno bno,b.tname bname from test_a a
full join test_b b
on a.tno = b.tno;
结果:

  ANOANAMEBNOBNAME
2b2c
  3d
1a  

                        

注:显示左右两表的并集,即左右表匹配的数据以及左右两表没有匹配的数据也显示。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值