首頁  >  文章  >  資料庫  >  oracle中內連接和外連接的區別

oracle中內連接和外連接的區別

下次还敢
下次还敢原創
2024-04-30 07:18:17625瀏覽

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中內連接和外連接的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn