SQL中内部联接和外部联接之间的区别
作者:
Laura McKinney
创建日期:
2 四月 2021
更新日期:
12 可能 2024
内容
内部联接和外部联接都是联接的类型。 Join比较并合并来自两个关系或表的元组。内部联接指定自然联接,即,如果编写不带Inner关键字的Join子句,则它将执行自然联接操作。内联接和外联接之间的潜在区别是: 内部联接 只返回表和表中的匹配元组 外连接 返回两个比较表中的所有元组。让我们借助下面显示的比较表来讨论内联接和外联接之间的其他差异。
- 比较表
- 定义
- 关键差异
- 结论
比较表
比较基础 | 内部联接 | 外连接 |
---|---|---|
基本的 | 内部联接仅从两个表中输出匹配的元组。 | 外部联接显示两个表中的所有元组。 |
数据库 | 内部联接返回的数据库的潜在大小比外部联接要小。 | 外连接返回比较大的数据库。 |
种类 | 没有类型。 | 左外连接, 右外连接, 和完全外部联接。 |
内部联接的定义
内部联接也称为自然联接。内部联接比较两个表,并在两个表中合并匹配的元组。它也被称为默认的联接类型,因为Join子句在编写时没有使用inner关键字,而是执行了自然联接。如果Join子句不使用Outer关键字编写,则还将执行内部联接。
内部连接可以用一个例子来解释。有两个表学生表和部门表。现在让我们了解内部Join的作用。
从Student INNER JOIN中选择Name,Sem,Deparment_name。Department ON Student.Department_ID = Department.ID。您可以看到,结果中仅获得了这些元组,其中Student.Department_ID = Department.ID。因此,可以说内部联接仅合并两个表的匹配元组。
外连接的定义
与内部联接不同,只有输出的元组在两个比较表中具有相同的属性值。外部联接输出两个表的所有元组。外部联接分为三种类型 左外连接, 右外连接和 完全外部加入.
让我们一一理解它们。首先,让我们进行左外部联接。
从“学生”左外部加入“部门”,选择“名称”,“部门名称”。ON Student.Department_ID = Depoartment.ID。
您会看到学生表中的所有元组都显示在结果中。选择“名称”,“部门名称”,从“部门右外加入学生”中选择“学生”。Department_ID= Depoartment.ID。
您可以看到显示了Department表中的所有元组。从学生完全外部加入部门中选择“名称”,“部门名称”。ON Student.Department_ID = Depoartment.ID。
您可以观察到两个表中的所有元组都显示在结果中。
- 内部联接和外部联接之间的基本区别在于,内部联接仅比较和组合来自两个表的匹配元组。另一方面,外部联接比较并合并两个被比较表中的所有元组。
- 从内部联接获得的结果的数据库大小小于外部联接。
- 共有三种类型的外部连接:左外部连接,高度外部连接和完全外部连接。但是内部Join没有这种类型。
结论:
两种联接都非常有用。其使用取决于用户的要求。