多表查询:查询结果需要用到两个或者以上表,此时需要多表连接,产生多表查询
1、内连接(等值连接)
示例:将两个表内容连接显示
select * from dept d, emp e where d.deptno = e.deptno;
注意:只有当d.deptno = e.deptno条件满足,内容才会显示,否则不显示
2 、外连接:让等值判断左右两边有一边的数据可以全部显示出来,使用外连接方式时使用”(+)”
格式:
左外连接:字段=字段(+)
右外连接:字段(+)=字段
示例:显示雇员的姓名,职位和领导姓名
分析:
确认要使用的数据:
1、 emp表的雇员姓名,职位(别名为e)
2、 emp表的领导姓名(别名为m)
确认相连的关系:
e.mgr = m.empno;
如果某个雇员没有领导的时候,其内容将会显示不出来,此时需要用外连接,让其中一边的表在没有领导的情况下,也可以显示出来。
左、右外连接可以不区分,但是最重要的是把要显示的内容显示出来就行。
select e.ename, e.job, m.ename from emp e, emp m where e.mgr = m.empno(+);