以Oracal為例內連線 左外連線和右外連線的區別

2021-09-22 08:22:00 字數 1186 閱讀 6838

注:本文以oracle資料庫為例,所用sql標準為oracle專用,而不是sql99規則!

首先我們建立兩個新錶tb_stu和tb_course(本文只是為了講述本質,因此**結構和資料從簡)

tb_stu(學生表)

tb_course(選課表)

可以看到tb_stu表中id為3的學生在tb_course中沒有對應的資料,tb_course表中stu_id為4的學生也不存在於tb_stu中。

內連線查詢:只能查詢出符合條件的記錄,只會顯示兩個表中都有的資料,系統會自動忽略兩個表中對應不起來的資料。

可以看到,資料只顯示了id為1、2的學生基本資訊和選課資訊,學生3和4的資訊並沒有顯示,所以內連線只顯示所有有關聯的資料。

外連線查詢:既能查詢出符合條件的記錄,也能根據一方強行將另乙個方查詢出來
在sql99規則中,我們利用inner join、left join、right join來表示內連線、左外連線和右外連線,而在oracle中我們利用(+)表示外連線。在講左、右連線之前,首先清楚乙個主副表的概念,即當兩個表做外連線時,乙個表為主表,乙個表為副表,主表需要全部查詢出來,副表需要(+)。

我們可以看到,結果顯示的資料中包含左表(即tb_stu)中的所有資料,右表中多的資料沒有顯示,少的資料顯示為null(圖中沒有顯示為null是因為我在定義表結構時設定為不能為空,)

我們可以看到,結果顯示的資料中包含右表中所有的資料,而左表中多的資料沒有顯示。

注:本文中的左右表為等號的左右。

連表查詢(內連線,左外連線,右外連線)

用兩個表 a table b table 關聯欄位a table.a id和b table.b id來演示一下mysql的內連線 外連線 左 外 連線 右 外 連線 全 外 連線 mysql版本 server version 5.6.31 mysql community server gpl 資料庫...

SQL的內連線 左外連線 右外連線以及交叉連線

以下是我對sql的內連線 左外連線 右外連線以及交叉連線的一些理解,希望能幫助到一些人,也歡迎指正錯誤。假設有兩張表 a表和b表 a表中的aid與b表中的bid關聯 內連線 select from a join b on a.aid b.bid 或者 select from a,b where a....

SQL 內連線,外連線(左外連線 右外連線)

參考整理筆記 關鍵字 inner join on 語句 select from a table a inner join b table bon a.a id b.b id 執行結果 說明 組合兩個表中的記錄,返回關聯字段相符的記錄,也就是返回兩個表的交集 陰影 部分。關鍵字 left join o...