Oracle 第八天 SQL各种连接查询

以下均以oracle->scott账号自带的数据库为例(方括号里的东西表示有和没有效果是一样的)。

表内查询->自连接
查询所有经理所对应的雇员:

select manager.ename as manager,worker.ename as worker from emp manager,emp worker where manager.empno=worker.mgr;  


表间连接->内连接
查询部门名对应的雇员名:

select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno; 


->左外连接
查询雇员名对应的部门名和没有部门对应的雇员名:

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


->右外连接
查询雇员名对应的部门名和没有雇员对应的部门名:
select e.ename,d.dname from emp e right join dept d on e.deptno=d.deptno; 


->全连接
select e.ename,d.dname from emp e full join dept d on e.deptno=d.deptno;  


---------以上都是相等连接,还有一种不等连接
select e.ename,s.grade from emp e  join salgrade s on e.sal between s.losal and s.hisal; 


*1、between...and...包括两个端点值。
   2、从可以加inner中可以看出,不等连接也可以有内连接、左外/右外/全连接。

本文参考:http://yangxiutian.iteye.com/blog/1666543

猜你喜欢

转载自jiaozhiguang-126-com.iteye.com/blog/1667220