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;

你可能感兴趣的:(oracle,C++,c,Hibernate,C#)