6.1.3 外连接查询
与内连接不同,外连接是指使用OUTER JOIN关键字将两个表连接起来。外连接生成的结果集不仅包含符合连接条件的行数据,而且还包括左表(左外连接时的表)、右表(右外连接时的表)或两边连接表(全外连接时的表)中所有的数据行。
外连接分为左外连接(LEFT OUTER JOIN)、右外连接(RIGHT OUTER JOIN)和全外连接3种类型。
1.左外连接查询
左外连接(LEFT OUTER JOIN)是指将左表中的所有数据分别与右表中的每条数据进行连接组合,返回的结果除内连接的数据外,还包括左表中不符合条件的数据,并在右表的相应列中添加NULL值。下面通过实例讲解使用左外连接查询数据的实现方法。
【实例6-3】使用左外连接的查询方式将"职员信息"和"职务信息"数据表连接起来,使得能够从这两个数据表中查询数据信息。其具体实现如代码6.3所示。
代码6.3
- 01 SELECT a.编号,a.姓名,a.部门编号,
- 02 a.年龄,a.现住址,b.职务名称
- 03 FROM 职员信息 as a
- 04 LEFT OUTER JOIN 职务信息 as b
- 05 ON a.职务编号 = b.职务编号
- 06 ORDER BY a.编号
【执行代码】代码执行以后,查询的数据结果如图6.3所示。
|
图6.3 使用左外连接查询数据信息 |
说明:在执行左外连接查询的查询结果集中,将在"职员信息"数据表中不存在"职务编号"的"职务名称"字段中添加NULL。
【深入学习】关于上述代码的分析如下所示:
第1~2行指定从两个数据表中查询的列名称。
第3~5行使用左外连接查询数据表,并通过别名设置数据表的连接条件。
第6行使用ORDER BY语句将查询的结果集按照编号进行升序排序。
2.右外连接查询
右外连接(RIGHT OUTER JOIN)是指将右表中的所有数据分别与左表中的每条数据进行连接组合,返回的结果除内连接的数据外,还包括右表中不符合条件的数据,并在左表的相应列中添加NULL。
下面通过实例讲解使用右外连接查询数据的实现方法。
【实例6-4】使用右外连接的查询方式将"职员信息"和"职务信息"数据表连接起来,使得能够从这两个数据表中查询数据信息。其具体实现如代码6.4所示。
代码6.4
- 01 SELECT a.编号,a.姓名,a.部门编号,
- 02 a.年龄,a.现住址,b.职务名称
- 03 FROM 职员信息 as a
- 04 RIGHT OUTER JOIN 职务信息 as b
- 05 ON a.职务编号 = b.职务编号
- 06 ORDER BY a.编号
【执行代码】代码执行以后,查询的数据结果如图6.4所示。
|
图6.4 使用右外连接查询数据信息 |
说明:在执行右外连接查询的查询结果集中,将在"职员信息"数据表中不存在"职务编号"的"编号"、"姓名"、"部门编号"、"年龄"和"现住址"字段中添加NULL。
【深入学习】关于上述代码的分析如下所示:
第1~2行指定从两个数据表中查询的列名称。
第3~5行使用右外连接查询数据表,并通过别名设置数据表的连接条件。
第6行使用ORDER BY语句将查询的结果集按照编号进行升序排序。
3.全外连接查询
全外连接是指将左表中的所有数据分别与右表中的每条数据都进行连接组合。返回的结果集除了内连接的数据外,还有两个表中不符合条件的数据,并在左表或右表的相应列中添加NULL。下面通过实例讲解使用全外连接查询数据的实现方法。
【实例6-5】使用全外连接的查询方式将"职员信息"和"职务信息"数据表连接起来,使得能够从这两个数据表中查询数据信息。其具体实现如代码6.5所示。
代码6.5
- 01 SELECT a.编号,a.姓名,a.部门编号,
- 02 a.年龄,a.现住址,b.职务名称
- 03 FROM 职员信息 as a
- 04 FULL OUTER JOIN 职务信息 as b
- 05 ON a.职务编号 = b.职务编号
- 06 ORDER BY a.编号
【执行代码】代码执行以后,查询的数据结果如图6.5所示。
|
图6.5 使用全外连接查询数据信息 |
【深入学习】关于上述代码的分析如下所示:
第1~2行指定从两个数据表中查询的列名称。
第3~5行使用全外连接查询数据表,并通过别名设置数据表的连接条件。
第6行使用ORDER BY语句将查询的结果集按照编号进行升序排序。
说明:左外连接、右外连接和全外连接之间的区别在于如何向返回不符合条件的数据列中添加NULL值。
分享到:
相关推荐
Oracle的外连接查询是数据库操作中的重要组成部分,它允许用户获取来自两个或更多表的数据,即使在某些情况下,这些表之间的连接条件不完全匹配。在理解外连接查询之前,我们首先要了解内连接,即最基础的相等连接。...
【SQL子查询、内连接和外连接查询】 在SQL中,子查询、内连接和外连接是进行复杂数据检索的关键工具。这些概念的理解和熟练应用对于数据库管理与数据分析至关重要。 **子查询** 是一个嵌套在其他SQL语句中的查询,...
本文将深入探讨如何在C#中使用ADO.NET或Entity Framework等库来执行左外连接查询。 首先,了解左外连接的基本原理至关重要。左外连接返回左侧表格的所有记录,并与右侧表格的匹配记录相结合。如果右侧表格没有匹配...
SQL多表外连接查询是数据库操作中的一个重要知识点,它属于数据库查询技术的范畴。本文将介绍外连接查询的意义、实现步骤和方法,重点在于对父表和子表进行多表外连接查询时应注意事项。 外连接查询的意义: 外连接...
在讨论SQL外连接查询在系统开发中的应用时,首先需要了解SQL语句在数据库操作中的重要性。SQL(Structured Query Language)是一种用于访问和操作数据库的标准编程语言。它允许用户在数据库中查询、更新、插入和删除...
交叉连接、内连接、外连接查询.sql
Oracle PPT 文档\外连接查询及应用.ppt 。
#### 四、外连接查询 外连接是指当两个表进行联接时,除了返回两个表中的匹配行外,还会返回一个表中未匹配的行。 ##### 实现方法 1. **左外连接**: ```sql SELECT t1.*, t2.* FROM table1 AS t1 LEFT OUTER ...
通常在项目中对表的查询都是关联多张表,多表查询就涉及到sql的内连接、外连接和自连接查询。本篇文章将简单的介绍这些sql连接的使用,希望对大家有所帮助。
Linux运维-运维课程d2-MySQL基本SQL语句(下)-23-外连接查询(重点).mp4
根据题目中给出的数据表`user`和`department`,我们可以通过左外连接查询所有用户的信息及其对应的部门信息。假设表`user`的结构如下: ``` userid username departmentid 1 111111 1 2 222222 2 3 333333 null ```...
- 添加数据到`grade`表后,使用右外连接查询所有课程的选修情况,列出课程编号、课程名称、选修人数: ```sql SELECT c.course_id, c.course_name, COUNT(g.student_id) AS enrolled_students FROM curriculum c...
数据库实践四(内连接外连接)答案是一个关于数据库操作的实践题目,涵盖了数据库的基本操作,包括内连接、外连接、子查询等。下面对每个题目进行详细的解释和分析: 一、创建学生表、成绩表、课程表 首先,我们...
综上所述,理解并熟练运用C#中的左外连接查询对于开发涉及多表交互的应用程序至关重要。掌握如何在ADO.NET框架下编写和执行这样的查询,可以提升你在数据库编程领域的专业技能。在实践中,你可能还需要考虑性能优化...
限制左端表的数据必须满足连接条件,而不管右端表中的数据是否满足连接条件,均输出表中的内容,全外连接查询的特点是左、右两端表中的元组都输出,如果没有找到匹配的元组,就使用 NULL 来代替。 嵌套查询是指在...
连接查询有多种形式,包括内连接查询、外连接查询、复合条件连接查询等。基本格式如下: SELECT <表达式1>, <表达式2>, …, <表达式n> FROM <表1>, <表2>, …, <表n> WHERE <连接条件> 内连接查询又可以分为等值...
本篇文章将深入探讨数据库连接查询,包括内连接、外连接和交叉连接等,同时结合实例来帮助理解。 首先,了解数据库的基础架构。Oracle数据库由Oracle数据库(数据文件、控制文件、重做日志文件等)和Oracle实例...
外连接查询不仅返回满足连接条件的记录,还包含至少一方表中的所有记录。左连接返回左表的所有记录,即使在右表中没有匹配项。右连接反之,全连接则同时返回左右两表的所有记录。 3. 复合条件连接查询 当需要根据多...
例如,假设有一个投票主表voteMaster和一个投票者信息表voter,我们可以通过外连接查询所有投票者的投票信息,或者查看所有投票的投票者信息。右外连接会显示voter表的所有记录,而左外连接则显示voteMaster表的所有...
4. 创建`SqlCommand`对象,设置SQL查询语句,例如一个右外连接查询: ```csharp string query = "SELECT * FROM Table1 RIGHT OUTER JOIN Table2 ON Table1.Key = Table2.Key"; SqlCommand command = new ...