专业只做数据库实训和认证的品牌机构

微信公众号新浪微博
免费咨询电话:400-0909-964
当前位置: 网站首页 > DBA实战 > DBA课程 > Oracle基础教程:连接查询

Oracle基础教程:连接查询

文章来源: 更新时间:2016/7/20 13:41:17

在线老师点击咨询:

最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!

我要咨询

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

案例7:请查询出工资大于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;

ENAME

JOB

SAL

DNAME

JONES

MANAGER

2975

RESEARCH

BLAKE

MANAGER

2850

SALES

CLARK

MANAGER

2450

ACCOUNTING

SCOTT

ANALYST

3000

RESEARCH

KING

PRESIDENT

5000

ACCOUNTING

FORD

ANALYST

3000

RESEARCH

6 rows selected

也可以使用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可以省略。

案例8:请查询出每个部门下的员工姓名,工资。

案例分析:

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  /

ENAME

JOB

SAL

DNAME

 

SMITH

CLERK

800

RESEARCH

 

ALLEN

SALESMAN

1600

SALES

 

WARD

SALESMAN

1250

SALES

 

JONES

MANAGER

2975

RESEARCH

 

MARTIN

SALESMAN

1250

SALES

 

BLAKE

MANAGER

2850

SALES

 

CLARK

MANAGER

2450

ACCOUNTING

 

SCOTT

ANALYST

3000

RESEARCH

 

KING

PRESIDENT

5000

ACCOUNTING

 

TURNER

SALESMAN

1500

SALES

 

ADAMS

CLERK

1100

RESEARCH

 

JAMES

CLERK

950

SALES

 

FORD

ANALYST

3000

RESEARCH

 

MILLER

CLERK

1300

ACCOUNTING

 

 

 

 

公关部

 

 

 

研发部

 

 

 

培训部

 

 

 

OPERATIONS

 

 18 rows selected

代码解析:

① (+):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可以省略。

提示:虽然Oracle自身的联接查询语法比较好写,同时容易理解,但是为了程序便于移植,推荐使用SQL/92表中的联接查询。同时也可以与SQL Server获得一致。

本文地址:http://www.cuug.com.cn/dba/kecheng/12524294945.html 转载请注明!


在线预约 抢先报名 获取课程排期

Oracle培训机构

金牌讲师<>

冉乃纲-老师CUUG金牌讲师
冉老师 CUUG金牌讲师 Oracle及RedHat高级讲师、Unix/Linux 资深专家...[详细了解老师]

免费咨询上课流程 客服在线中

陈卫星-老师CUUG金牌讲师
陈老师 CUUG金牌讲师 精通Oracle管理、备份恢复、性能优化 11年Ora...[详细了解老师]

免费咨询上课流程 客服在线中

选学校如何选择适合自己的学校

CUUG -CHINA UNIX USER GROUP,是国际UNIX组织UNIFORUM的中国代表,是国内悠久的专业UNIX培训机构,被誉为中国UNIX 的摇篮。多年来,以提高教学质量为本,强调素质教育,积极引进、消化国外的新技术,有效的结合中国....[详情]

一站式服务(从入学到就业一帮到底)

入学

学习

就业

实操

食宿
地址:北京市海淀区北清路164号28-38号院
课程咨询:010-59426307 010-59426319 400-0909-964
企业服务:137 1818 8639(陈经理)
部分信息来源于网络,如有错误请联系指正!
版权所有@北京神脑资讯技术有限公司 (CUUG,中国UNIX用户协会) Copyright 2016 ALL Rights Reserved 京ICP备11008061号-1