- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle 11g R1(11.1) Joins表连接
Oracle 11g R1(11.1) Joins表连接
本文内容
概述
本文使用的表和其数据
Oracle 11g R1 表连接
连接条件
等值连接(Equijoin)
自连接(Self Joins)
笛卡尔积(Cartesian Products)
内连接(Inner Joins)
外连接(Outer Joins)
反连接(Antijoins)
半连接(Semijoins)
参考资料
概述
Oracle 8i 之前的表连接:
等值连接(Equijoin)。
自连接(Self join)。
外连接(Outer join)。包括左外连接和右外连接。
Oracle 9 之后的表连接:
等值连接(Equijoin)。
自连接(Self join)。
内连接(Inner join)和交叉连接(Cross Joins)。
外连接(Outer join)。包括左外连接、右外连接和全外连接,以及对它们进行分区。
自然连接(Natural join)。
还可以使用 Using 关键字和 on 关键字建立连接。
本文使用的表和其数据
部门表 DEPT
员工表 EMP
注意:
1,员工表中没有部门为 40 的员工。
2,员工编号 7839 为职位最高的人,它没有上级。
3,员工编号为 7654、7876、7934 没有部门。
Oracle 11g R1 表连接(Joins)
“连接(Join )”是一个查询,把两个或多个表(table)、视图(view)或物化视图(materialized view)的数据行合并在一起。无论何时,当多个表出现在 FROM 子句,Oracle 数据库都会执行一个连接。select 会列出所有表的所有列。
select * from emp, dept
如果任何两个表有同名的列,那么你必须用表名限定所有引用的列,避免歧义。
select emp.empno,
emp.ename,
emp.job,
emp.mgr,
emp.hiredate,
emp.sal,
m,
emp.deptno,
dept.deptno,
dept.dname,
dept.loc
from emp, dept
连接条件
大多数连接查询至少包含一个连接条件,或是在 FROM 子句,或是 WHERE 子句。连接条件在每一个不同的表中比较两个列。执行一个连接时,Oracle 合并每个表的每行,以便计算连接条件为 TRUE。连接条件中的列不必出现在 select 子句中。
若要执行三个,或更多个表的连接,Oracle 先根据连接条件,比较前两个表的列,连接前两个表,再基于连接条件,把这个连接结果与另一个表连接。Oracle 将继续这一过程,直到所有的表都被连接到结果中。优化器基于连接条件、表的索引,以及表的统计信息决定连接的顺序。
包含连接条件的 WHERE 子句也可以包含其他条件,这些条件可以进一步限制连接查询返回的行,如表中的某列。
注意:如果 WHERE 子句包含连接条件,那么不能在 WHERE 子句中指定 LOB 列。在 WHERE 子句中使用 LOB 也会受到其他限制。参阅:Oracle Database SecureFiles 和 Large Objects 开发人员指南。
等值连接(Equijoins)
“等值连接”是在连接条件中包含相等操作符的连接。“等值连接”合并具有相等值的规定的列的数据行。根据内部算法,优化器选择执行的连接,一个单表等值连接的列的总大小被限制在一个数据块内,以减少开销。数据块的大小是由初始化参数 DB_BLOCK_SIZE 指定的。
示例1:演示返回所有员工的编号和名字,以及所在的部门编号和名称。
select emp.empno, emp.ename, dept.deptno, dept.dname
from emp, dept
where emp.deptno = dept.deptno
order by emp.empno asc
结果:
示例2:演示返回职位为“经理”员工的编号和名字,以及所在的部门编号和名称。
select emp.empno, emp.ename, dept.deptno, dept.dname
from emp, dept
where emp.deptno = dept.deptno
and emp.job = MANAGER
order by emp.empno asc
结果:
自连接(Self Joins)
“自连接”是一个表连接自己的
您可能关注的文档
- 《局域网组建实例教程》课件第9章.ppt
- 财会人员计算机基础知识.ppt
- 标准局域网组建方案.ppt
- Doublecom方案设计参考.doc
- 数据库表连接(内外、左右连接).docx
- 一份DBA试题.docx
- Oracle面试题目2.docx
- SQLServer教案第09周 连接查询和子查询.doc
- DBA 面试题目.doc
- SQL Server DBA_名企面试问题及答案.doc
- 英语单词大全,推荐文档 .pdf
- 2024-2030年糖果市场前景分析及投资策略与风险管理研究报告.docx
- 2024-2030年缓蚀化合物行业市场现状供需分析及重点企业投资评估规划分析研究报告.docx
- 英语第二单元A部分教学设计 .pdf
- 2024-2030年组合启动器行业市场现状供需分析及重点企业投资评估规划分析研究报告.docx
- 英语动词过去式过去分词现在分词第三人称单数 .pdf
- 2024-2030年磷系阻燃剂行业市场现状供需分析及重点企业投资评估规划分析研究报告.docx
- 2024-2030年绿化工程设备行业市场供需格局及发展趋势与投资前景研究报告.docx
- 2024-2030年移动便携式电源组行业市场现状供需分析及重点企业投资评估规划分析研究报告.docx
- 2024-2030年石油和天然气设备用低速电动机和发电机行业市场现状供需分析及市场深度研究发展前景及规划投资研究报告.docx
文档评论(0)