Oracle数据库笔记9(内连接与外连接)

内连接格式:

select 列名... from 表1 inner join 表2 on  条件

外连接格式:左连接,右链接,完全连接

1 左外连接:左侧的表完全显示(+写在右边,表示对方表是左表)

2 右外连接:右侧的表完全显示

3 完全连接:完全显示2个表,没有匹配的记录也显示是完全连接

Oracle数据库笔记9(内连接与外连接)

//显示员工的信息和部门名字(用内连接的方式)

select emp.ename,emp.deptno,dept.deptno from emp inner join dept on emp.deptno=dept.deptno;

//显示所有人的成绩,如果没有成绩,也要显示该人的姓名和id,该同学成绩显示为空;

select stu.id,stu.name,exam.grade from stu left join exam on stu.id=exam.id;

或者:   select stu.id,stu.name,exam.grade from stu, exam where stu.id=exam.id(+);

//显示所有名字,如果没有名字匹配,则显示为空

select stu.id,stu.name,exam.grade from stu right join exam on stu.id=exam.id;

或者:   select stu.id,stu.name,exam.grade from stu, exam where stu.id(+)=exam.id;

//显示所有成绩与所有的名字

//正确方式

select stu.id,stu.name,exam.grade from stu all join exam on stu.id=exam.id;

//错误方式

select stu.id,stu.name,exam.grade from stu, exam where stu.id(+)=exam.id(+);