在讲外连接之前,先举例介绍内连接,也就是一般的相等连接。
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数据库中,半联结(Semi-Join)和反联结(Anti-Join)是两种特殊的查询操作,它们通常用于处理两个表之间的关联,但返回的结果与传统的内联结(Inner Join)和外联结(Outer Join)有所不同。这两种操作在...
3.3.5 外联结 88 3.4 小结 94 第4章 SQL是关于集合的 95 4.1 以面向集合的思维方式来思考 95 4.1.1 从面向过程转变为基于集合的思维方式 96 4.1.2 面向过程vs.基于集合的思维方式:一个例子 100 4.2 集合运算 ...
1. **选择合适的联结类型**:根据表之间的关系和数据分布情况选择最合适的联结类型,如内联结(INNER JOIN)、外联结(OUTER JOIN)等。 2. **使用适当的索引**:确保参与联结的字段上有合适的索引,以便快速定位...
在Oracle中,可以使用不同类型的联结来获取特定的查询结果,包括内联结(JOIN)、全外联结(FULL OUTER JOIN)、左外联结(LEFT OUTER JOIN)和右外联结(RIGHT OUTER JOIN)。根据表之间的主键和外键关系,选择正确...
4. 执行复杂的联结操作,例如内联结、左外联结、右外联结以及全外联结等。 5. 进行分组和汇总数据,比如使用GROUP BY子句和聚合函数(如SUM、AVG、COUNT等)。 这本书不仅适合初学者入门学习SQL,也适合有经验的...
- **左外联结(LEFT JOIN)**:返回左表的所有行和右表中匹配的行,如果右表没有匹配,则用NULL填充。 - **右外联结(RIGHT JOIN)**:返回右表的所有行和左表中匹配的行,如果左表没有匹配,则用NULL填充。 - **...
计算题涉及关系代数的操作,包括广义笛卡尔积、等值联结和外联结。 SQL设计题和PL/SQL编程题则要求掌握SQL语言的基本操作,如创建表、删除记录、统计查询、视图定义以及使用游标进行数据操作。例如,创建表、删除...
21-23题涉及关系数据库的运算,包括广义笛卡尔积、等值联结和外联结,这些运算用于合并和关联不同的关系表。 24-28题是SQL设计题,涉及创建表、删除记录、统计、查询和创建视图等操作,这些都是数据库管理的基础...
- **全外连接 (FULL OUTER JOIN)**:在MySQL中不支持,但在Oracle等其他数据库系统中可用,返回两个表中的所有行,如果某一边没有匹配,则显示NULL。 5. **联合查询 (UNION)**:用于合并两个或更多`SELECT`语句的...
除了Tuxedo特有的环境变量外,还需要关注操作系统层面的环境变量设置,确保Tuxedo相关的库文件能够被正确加载。例如,在AIX环境下,可能需要设置`LD_LIBRARY_PATH`来指向Tuxedo的库文件路径。 **1.6 TMS起来后,但...
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而...