Oracle数据库笔记9(内连接与外连接)
内连接格式:
select 列名... from 表1 inner join 表2 on 条件
外连接格式:左连接,右链接,完全连接
1 左外连接:左侧的表完全显示(+写在右边,表示对方表是左表)
2 右外连接:右侧的表完全显示
3 完全连接:完全显示2个表,没有匹配的记录也显示是完全连接
//显示员工的信息和部门名字(用内连接的方式)
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(+);