Oracle数据查询(多表查询)

1. 自连接:将一张表作为两张表看待进行的连接

     FROM table t1 JOIN table t2 ON t1.col = t2.col

    ①查询整个员工表select * from emp;

    

    ②查询员工的姓名和他对应的管理者的姓名

    select w.ename,m.ename from emp w join emp m on w.mgr = m.empno;

    

2. 外连接:使用空行匹配非匹配行的连接 

    FROM table1 [<LEFT | RIGHT | FULL> OUTER]  JOIN table2ON t1.col = t2.col

    ①查询整个部门表select * from dept;

    

    ②右外连接:右边表全部显示,左边的表用空行匹配没有匹配的行。

  select ename,d.deptno,dname from emp right outer join dept d on emp.deptno = d.deptno  

             


    ③左外连接:左边的表全部显示,右边的表用空行匹配没有匹配的行。

    select ename,d.deptno,dname from emp left outer join dept d on emp.deptno = d.deptno


    ④完全外连接:两边的表都会用空行匹配非匹配的行。

    select ename,d.deptno,dname from emp full outer join dept d on emp.deptno = d.deptno



3. 连接更多表

FROM table1 JOIN table2 ON t1.col = t2.col

                     JOIN table3 ON t1. col= t3.col

select ename,dept.deptno,dname,grade
from emp join dept on emp.deptno = dept.deptno
         join salgrade on sal BETWEEN losal AND hisal;





    

猜你喜欢

转载自blog.csdn.net/qq_32639315/article/details/80559562