`
Aga
  • 浏览: 218562 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

oracle 的+外联结

阅读更多
在讲外连接之前,先举例介绍内连接,也就是一般的相等连接。

select * from a, b where a.id = b.id;

对于外连接,Oracle中可以使用“(+)”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面将配合实例一一介绍。

1. LEFT OUTER JOIN:左外关联

SELECT e.last_name, e.department_id, d.department_name 

FROM employees e 

LEFT OUTER JOIN departments d 

ON (e.department_id = d.department_id);


等价于

SELECT e.last_name, e.department_id, d.department_name 

FROM employees e, departments d 

WHERE e.department_id=d.department_id(+);


结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录。

2. RIGHT OUTER JOIN:右外关联

SELECT e.last_name, e.department_id, d.department_name 

FROM employees e 

RIGHT OUTER JOIN departments d 

ON (e.department_id = d.department_id);


等价于

SELECT e.last_name, e.department_id, d.department_name 

FROM employees e, departments d 

WHERE e.department_id(+)=d.department_id;


结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。

3. FULL OUTER JOIN:全外关联

SELECT e.last_name, e.department_id, d.department_name 

FROM employees e 

FULL OUTER JOIN departments d 

ON (e.department_id = d.department_id);


结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录和没有任何员工的部门记录。
分享到:
评论

相关推荐

    Oracle中的半联结和反联结详解

    在Oracle数据库中,半联结(Semi-Join)和反联结(Anti-Join)是两种特殊的查询操作,它们通常用于处理两个表之间的关联,但返回的结果与传统的内联结(Inner Join)和外联结(Outer Join)有所不同。这两种操作在...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    3.3.5 外联结 88 3.4 小结 94 第4章 SQL是关于集合的 95 4.1 以面向集合的思维方式来思考 95 4.1.1 从面向过程转变为基于集合的思维方式 96 4.1.2 面向过程vs.基于集合的思维方式:一个例子 100 4.2 集合运算 ...

    浅谈Oracle数据库性能的优化

    1. **选择合适的联结类型**:根据表之间的关系和数据分布情况选择最合适的联结类型,如内联结(INNER JOIN)、外联结(OUTER JOIN)等。 2. **使用适当的索引**:确保参与联结的字段上有合适的索引,以便快速定位...

    1z0-061.311Q.pdf

    在Oracle中,可以使用不同类型的联结来获取特定的查询结果,包括内联结(JOIN)、全外联结(FULL OUTER JOIN)、左外联结(LEFT OUTER JOIN)和右外联结(RIGHT OUTER JOIN)。根据表之间的主键和外键关系,选择正确...

    SQL.Cookbook中文版

    4. 执行复杂的联结操作,例如内联结、左外联结、右外联结以及全外联结等。 5. 进行分组和汇总数据,比如使用GROUP BY子句和聚合函数(如SUM、AVG、COUNT等)。 这本书不仅适合初学者入门学习SQL,也适合有经验的...

    SQL查询语言及应用

    - **左外联结(LEFT JOIN)**:返回左表的所有行和右表中匹配的行,如果右表没有匹配,则用NULL填充。 - **右外联结(RIGHT JOIN)**:返回右表的所有行和左表中匹配的行,如果左表没有匹配,则用NULL填充。 - **...

    《数据库原理与应用》试题一[收集].pdf

    计算题涉及关系代数的操作,包括广义笛卡尔积、等值联结和外联结。 SQL设计题和PL/SQL编程题则要求掌握SQL语言的基本操作,如创建表、删除记录、统计查询、视图定义以及使用游标进行数据操作。例如,创建表、删除...

    《数据库原理与应用》试题一[借鉴].pdf

    21-23题涉及关系数据库的运算,包括广义笛卡尔积、等值联结和外联结,这些运算用于合并和关联不同的关系表。 24-28题是SQL设计题,涉及创建表、删除记录、统计、查询和创建视图等操作,这些都是数据库管理的基础...

    可能是史上最全的-------mysql连结查询精炼.pdf

    - **全外连接 (FULL OUTER JOIN)**:在MySQL中不支持,但在Oracle等其他数据库系统中可用,返回两个表中的所有行,如果某一边没有匹配,则显示NULL。 5. **联合查询 (UNION)**:用于合并两个或更多`SELECT`语句的...

    Tuxedo精华贴子总结.pdf

    除了Tuxedo特有的环境变量外,还需要关注操作系统层面的环境变量设置,确保Tuxedo相关的库文件能够被正确加载。例如,在AIX环境下,可能需要设置`LD_LIBRARY_PATH`来指向Tuxedo的库文件路径。 **1.6 TMS起来后,但...

    超级有影响力霸气的Java面试题大全文档

     继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而...

Global site tag (gtag.js) - Google Analytics