oracle中emp表的内连接,左外连接,右外连接,全外连接

    技术2025-07-14  15

    EMP表中员工与老板的关系内连接:        内连接也叫自然连接,它是组合两个表的常用方法。自然连接将两个表中的列进行比较,将两个表中满足连接条件的行组合起来,作为结果。自然连接有两种形式的语法。select e1.ename,e1.mgr,e2.ename aa from emp e1,emp e2 where e1.mgr=e2.empno;select e1.ename,e1.mgr,e2.ename aa from emp e1 inner joinemp e2 one1.mgr=e2.empno; --结果为:所有有上级的员工及对应上级姓名。外连接:        在自然连接中,只有在两个表中匹配的行才能在结果集中出现。而在外连接中可以只限制一个表,而对另外一个表不加限制(即所有的行都出现在结果集中)。        外连接分为左外连接、右外连接和全外连接。左外连接是对连接条件中左边的表不加限制;右外连接是对右边的表不加限制;全外连接对两个表都不加限制,所有两个表中的行都会包括在结果集中。左外连接的语法为:SELECT 列 from 表1   LEFT   [OUTER]JOIN 表2 ON 表1.列1=表2.列2右外连接的语法为: SELECT select_list from  表1 RIGHT[OUTER]JOIN 表2 ON 表1.列1=表2.列2全外连接(完整外部联接)的语法为:SELECT select_list from  表1 FULL[OUTER]  JOIN  表2 ON 表1.列1=表2.列2左外连接:         左外连接是对连接条件中左边的表不加限制 select e1.ename,e1.mgr,e2.ename aa from emp e1,emp e2 where e1.mgr=e2.empno(+);select e1.ename,e1.mgr,e2.ename aa from emp e1 leftouter joinemp e2 one1.mgr=e2.empno;--结果为:所有员工及对应上级姓名(包括没有上级的员工记录)。右外连接:        右外连接是对右边的表不加限制 select e1.ename,e1.mgr,e2.ename aa from emp e1,emp e2 where e1.mgr(+)=e2.empno;select e1.ename,e1.mgr,e2.ename aa from emp e1 right outer joinemp e2 one1.mgr=e2.empno;--结果为:所有员工及对应上级姓名,加上没有下级员工的上级记录。全外连接:        全外连接对两个表都不加限制,所有两个表中的行都会包括在结果集中*/select e1.ename,e1.mgr,e2.ename aa from emp e1 full outer joinemp e2 one1.mgr=e2.empno;--结果为:所有员工及对应上级姓名(包括没有上级的员工记录),加上没有下级员工的上级记录。交叉联接:        没有 WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。 select e1.ename,e1.mgr,e2.ename aa from emp e1 cross joinemp e2;select e1.ename,e1.mgr,e2.ename aa from emp e1 ,emp e2;--结果为:两个表中所有员工交叉排列组成的笛卡尔集。/*左外连接和右外连接的两种写法返回的结果相同,但排列的方式不同*/

    最新回复(0)