Oracle中的内连接,左外连接,右外连接,自然连接

创建数据表,并存入数据


create table company
(
id
integer constraint pk1 primary key,
name
varchar2(10) not null
);

create table product
(
id
integer constraint pk2 primary key,
name
varchar2(10) not null,
companyid
integer
);

insert into company values (1,'companyA');
insert into company values (2,'companyB');
insert into company values (3,'companyC');

insert into product values (1,'productA',1);
insert into product values (2,'productB',2);
insert into product values (3,'productC',2);


1.内连接 也就是一般的=连接

如果某一行的连接条件中的一列为空,那么这行就不会被返回

select * from company c,product p where c.id=p.companyid;

 

结果:

可见company3没有显示出来,即内连接不会返回连接条件为NULL的行

 

外连接:即使连接条件中的一列包含空值也会返回一行

2.右外连接

右侧的表数据不管右侧表对应的条件值空与否都存在

 

其中prouctD是为了演示效果临时添加的.语句是insert into product values (4,'productD',4);

 

3.左外连接

左侧的表数据不管右侧表对应行的条件值空与否都存在

4.自然连接,即表与自己表相连接

 

 

 

 

posted @ 2010-03-10 23:12  东苑草根  阅读(938)  评论(0编辑  收藏  举报
手牵手 一步两步三步 往上爬