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.自然连接,即表与自己表相连接
整理编辑: 东苑草根 zjut