oracle中内连接和外连接的区别

oracle 中的连接类型分为内连接和外连接。内连接仅返回匹配行的结果,而外连接返回匹配行和仅出现在一个表中的行。外连接有三种类型:左外连接(返回左侧表所有行)、右外连接(返回右侧表所有行)、全外连接(返回两侧表所有行)。内连接的特点是匹配行,左外连接用 null 填充右侧表空值,右外连接用 null 填充左侧表空值,全外连接用 null 填充两侧表空值。

oracle中内连接和外连接的区别

Oracle 中内连接和外连接的区别

定义:

  • 内连接 (INNER JOIN):仅返回两个或更多表中所有匹配行的数据。
  • 外连接:返回两个或更多表中所有匹配行的数据,以及来自仅存在于一个表中的行。

类型:

外连接有三种类型:

  • 左外连接 (LEFT OUTER JOIN):返回左表中的所有行,以及与之匹配的右侧表中的行。
  • 右外连接 (RIGHT OUTER JOIN):返回右表中的所有行,以及与之匹配的左侧表中的行。
  • 全外连接 (FULL OUTER JOIN):返回来自两个表的行,即使行之间没有匹配。

区别:

特征内连接左外连接右外连接全外连接
匹配原则仅匹配行左侧表匹配右侧表匹配两侧表匹配
返回行匹配行左侧表所有行右侧表所有行两侧表所有行
空值处理仅显示匹配行用 NULL 填充右侧表空值用 NULL 填充左侧表空值用 NULL 填充两侧表空值

举例:

假设我们有两个表:

  • 表 Aid, name
  • 表 Bid, address

内连接:

<code>SELECT *
FROM A
INNER JOIN B
ON A.id = B.id;</code>
登录后复制

返回:仅具有匹配 id 的行。

左外连接:

<code>SELECT *
FROM A
LEFT OUTER JOIN B
ON A.id = B.id;</code>
登录后复制

返回:所有来自表 A 的行,以及具有匹配 id 的来自表 B 的行(如果有)。非匹配的行用 NULL 填充。

示例查询:

以下查询使用左外连接将两个表中的数据连接起来,并显示所有客户及其地址:

<code>SELECT customers.name, orders.order_date, products.product_name
FROM customers
LEFT OUTER JOIN orders
ON customers.id = orders.customer_id
LEFT OUTER JOIN products
ON orders.product_id = products.id;</code>
登录后复制

通过理解内连接和外连接之间的区别,开发人员可以有效地使用这些连接来提取来自不同表的数据,并满足特定的数据查询要求。

以上就是oracle中内连接和外连接的区别的详细内容,更多请关注小编网其它相关文章!

转载请说明出处 内容投诉内容投诉
南趣百科 » oracle中内连接和外连接的区别

南趣百科分享生活经验知识,是您实用的生活科普指南。

查看演示 官网购买