exam(右表) 表与 stu 表中没有匹配的,也需要显示。
?
?
5、总结: 1)左、右外连可以相互转换,只需要换表的位置即可。
SELECT a.id,a.name,b.grade FROM stu a right join exam b on(a.id = b.id);
SELECT a.id,a.name,b.grade FROM exam b left join stu a on( a.id = b.id);
2)小结

6、练习:
1)列出部门名称和这些部门员工的员工信息,同时列出那些没有员工的部门
?
SELECT b.dname,a.* FROM emp a right join dept b on (a.deptno = b.deptno) order by b.deptno;
SELECT b.dname,a.* FROM dept b left join emp a on (a.deptno = b.deptno) order by b.deptno;
SELECT b.dname,a.* FROM emp a, dept b WHERE b.deptno = a.deptno(+) order by b.deptno;
SELECT b.dname,a.* FROM emp a, dept b WHERE a.deptno(+) = b.deptno order by b.deptno;
?
?
四、练习
?
1、显示雇员总数,以及获得补助的雇员数
SELECT count(*) ,count(comm) FROM emp;
2、显示管理者的人数
SELECT count(distinct mgr) FROM emp;
3、显示每个部门每个岗位的平均工资、每个部门的平均工资、每个岗位的平均工资。
SELECT avg(a.sal),a.deptno,a.job FROM emp a GROUP BY cube(a.deptno,a.job );
cube:立方体函数,对deptno分组,job分组,对(deptno、job)分组
?