oracle 连接查询

在SQL Server中已经学习过内联接(inner join)、外联接(outer join),外联接又分为左外联接(left outer join)和
右外联接(right outer join)。Oracle中对两个表或者若干表之间的外联接用(+)表示。

代码演示:请查询出工资大于2000元的员工的姓名,部门,工作,工资。
由于部门名称在dept中,其他的信息在emp表中,需要内联接才能完成。

SQL> SELECT e.ENAME,e.JOB,e.SAL,d.DNAME
  2  FROM emp e,dept d
  3  WHERE e.deptno=d.deptno
  4  AND e.SAL>2000;


也可以使用SQL/92标准中的内联接:

代码演示:内联接

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;


这里INNER JOIN中,关键字INNER可以省略。

代码演示:查询出每个部门下的员工姓名,工资。Emp表用外键deptno引用Dept表中的deptno,
在Dept表中如果有某些部门没有员工,那么用内联接,没有员工的部门将无法显示,因此必须以Dept表为基准的外联接。

SQL> SELECT e.ENAME,e.JOB,e.SAL,d.DNAME
  2  FROM EMP e ,DEPT d
  3  WHERE  e.DEPTNO(+)=d.DEPTNO
  4  / 

代码解析:
(+):Oracle专用的联接符,在条件中出现在左边指右外联接,出现在右边指左外联接。

也可以使用SQL/92标准的写法:
代码演示:外联接

SELECT e.ENAME,e.JOB,e.SAL,d.DNAME 
FROM EMP e RIGHT OUTER JOIN DEPT d ON e.DEPTNO=d.DEPTNO;


这里RIGHT OUTER JOIN中,关键字OUTER可以省略。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值