[b]--连接操作只有匹配的结果保留[/b]
[b]--外连接对非匹配元组填充[color=red]null[/color][/b]
[b]--左外连接将保留左关系的所有元组[/b]
create table course
(
id number,
name varchar2(30)
);
insert into course values(1, '程序设计');
insert into course values(2, '数据结构');
insert into course values(3, '编译原理');
create table student
(
id number,
name varchar2(30),
score number(4,2),
course_id number
);
insert into student values(9801, '张三', 60.10, 1);
insert into student values(9802, '李四', 96.02, 1);
insert into student values(9803, '王五', 70.16, 2);
insert into student values(9803, '王五', 86.00, 1);
--左外连接
select c.name course_name, s.name, s.score from course c
left join student s on (c.id = s.course_id);
--注意'编译原理'右面,有两个空值哦!!
COURSE_NAME NAME SCORE
------------------------------ ------------------------------ ------
程序设计 张三 60.10
程序设计 李四 96.02
数据结构 王五 70.16
程序设计 王五 86.00
编译原理 [color=red]null[/color] [color=red]null[/color]
[b]--外连接对非匹配元组填充[color=red]null[/color][/b]
[b]--左外连接将保留左关系的所有元组[/b]
create table course
(
id number,
name varchar2(30)
);
insert into course values(1, '程序设计');
insert into course values(2, '数据结构');
insert into course values(3, '编译原理');
create table student
(
id number,
name varchar2(30),
score number(4,2),
course_id number
);
insert into student values(9801, '张三', 60.10, 1);
insert into student values(9802, '李四', 96.02, 1);
insert into student values(9803, '王五', 70.16, 2);
insert into student values(9803, '王五', 86.00, 1);
--左外连接
select c.name course_name, s.name, s.score from course c
left join student s on (c.id = s.course_id);
--注意'编译原理'右面,有两个空值哦!!
COURSE_NAME NAME SCORE
------------------------------ ------------------------------ ------
程序设计 张三 60.10
程序设计 李四 96.02
数据结构 王五 70.16
程序设计 王五 86.00
编译原理 [color=red]null[/color] [color=red]null[/color]