oracle join说明及示例

1、等值连接(自然连接)-两个表具有共同属性(列),运行的结果表是参与操作的两个表的共同属性上进行等值连接后再去除重复的属性后所得到的新表。
2、以JOIN关键字指定的连接
[inner]|{left|right|full}[cross][outer]<join_hint>jion
inner内连接 - outer外连接 - cross交叉连接
(1)、inner - 按照on所指定的连接条件合并两个表,并返回满足条件的行。内连接是系统默认的,可以省略inner关键字。使用内连接后仍可使用where
子句指定条件。内连接可以使用于多个表的连接。

(2)、outer - 外连接的结果表不但包含满足连接条件的行,还包含相对应表中的所有行。除了满足条件的记录外,左外包含所有左边的行;右外包含所有右表的行;
全外包含两个表的所有行。外连接只能对两个表进行。
(3)、cross - 交叉连接是将两个表进行笛卡尔积运算。

测试示例如下:

create table stu(
id number(10),
name varchar2(100),
phone varchar2(20)
);

create table cause(
id number(10),
name varchar2(100),
sid number(10)
)

insert into stu values(1,'AAA','123456789');
insert into stu values(2,'BBB','777777777');
insert into stu values(3,'CCC','555555555');
insert into stu values(4,'DDD','222222222');

insert into cause values(1,'JAVA',1);
insert into cause values(2,'HIBERNATE',1);
insert into cause values(3,'ORACLE',2);
insert into cause values(4,'XML',3);
insert into cause values(5,'HTML',0);
commit;

select * from stu;
select * from cause;

自然连接:
select * from stu s,cause c where s.id=c.sid;
内连接
select * from stu s inner join cause c on s.id=c.sid where s.name='AAA';
select * from stu s join cause c on s.id=c.sid;
外连接
左外连接
select * from stu s left outer join cause c on s.id=c.sid;
select * from stu s,cause c where s.id=c.sid(+);
右外连接
select * from stu s right outer join cause c on s.id=c.sid;
select * from stu s,cause c where s.id(+)=c.sid;
全外连接
select * from stu s full outer join cause c on s.id=c.sid;
交叉连接
select * from stu s cross join cause c;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值