Oracle外连接,左外连接,右外连接,内连接简析

--内连接即普通等值连接
SELECT e.ENAME, e.JOB, e.SAL, d.DNAME
  FROM EMP e
 INNER JOIN DEPT d
    ON e.DEPTNO = d.DEPTNO
 WHERE e.SAL > 2000;

select e.ename ,e.job, e.sal ,d.dname from emp e,dept d where e.deptno = d.deptno and e.sal > 2000;

--外连接验证之前,先往dept表中插入一些信息
--表操作基于Oracle中scott用户下emp,dept表。由于deptno是emp的外键,
--所有左外连接查询不明显,但外连接、右外连接查询结果明显
insert into dept (DEPTNO, DNAME, LOC) values (60, '研发部', 'beijing'); insert into dept (DEPTNO, DNAME, LOC) values (80, '培训部', 'beijing'); insert into dept (DEPTNO, DNAME, LOC) values (70, '公关部', 'beijing'); commit; select e.ename, e.job, e.sal, d.dname from emp e, dept d where e.deptno (+)= d.deptno; --左外连接:left outer join 或 left join select e.ename,e.job,e.sal,d.dname from emp e left outer join dept d on d.deptno = e.deptno ; select e.ename,e.job,e.sal,d.dname from emp e left join dept d on d.deptno = e.deptno ; ----此为Oracle左外连接自带语法 select e.ename,e.job,e.sal,d.dname from emp e ,dept d where d.deptno (+)= e.deptno ; --右外连接:right outer join 或 right join select e.ename,e.job,e.sal,d.dname from emp e right outer join dept d on d.deptno = e.deptno ; select e.ename,e.job,e.sal,d.dname from emp e right join dept d on d.deptno = e.deptno ; ----此为Oracle右外连接自带语法 select e.ename,e.job,e.sal,d.dname from emp e ,dept d where d.deptno = e.deptno(+) ; --外连接:full outer join 或 full join select e.ename,e.job,e.sal,d.dname from emp e full outer join dept d on d.deptno = e.deptno ; select e.ename,e.job,e.sal,d.dname from emp e full join dept d on d.deptno = e.deptno ; /* 三个表做左外连接 SELECT * FROM TESTA LEFT OUTER JOIN TESTB ON TESTA.A=TESTB.A LEFT OUTER JOIN TESTC ON TESTA.A=TESTC.A */

 

转载于:https://www.cnblogs.com/wannianma/archive/2013/04/02/2994621.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值