oracle的多表查询与表的连接
Posted Etude
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle的多表查询与表的连接相关的知识,希望对你有一定的参考价值。
为了更好的观察到连接的区别,现在已经在dept表中提供了一个没有雇员的部门40,同时在emp表中增加一个没有部门的雇员。
INSERT INTO emp (empno,ename,deptno) VALUES(8989,\'HELLO\', null);
emp表目前如下:HELLO这个雇员没有部门
观察一:内连接实现效果
SELECT e.empno, e.ename, d.deptno, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno;
此时没有部门的雇员以及没有雇员的部门信息都没有出现,因为null的判断不满足。
观察二:使用左(外)连接,希望所有的雇员信息都显示出来,即便他没有部门。
SELECT e.empno, e.ename, d.deptno, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno(+);
此时出现了没有部门的雇员。也就是左表的数据全部显示了。
观察三:使用右(外)连接,将所有的部分信息都显示出来。
SELECT e.empno, e.ename, d.deptno, d.dname
FROM emp e, dept d
WHERE e.deptno(+) = d.deptno;
内连接指的就是所有满足关联条件的数据出现,不满足的不出现。外连接就是指定一张数据表中的数据全部都显示,但是没有对应的其他表数据,内容为null。
以上是关于oracle的多表查询与表的连接的主要内容,如果未能解决你的问题,请参考以下文章