用韋恩圖解釋SQL連結類型
韋恩圖是SQL連線的有效視覺化表示,幫助使用者理解不同表格的資料如何組合。以下是使用改進型韋恩圖表示的不同連接類型的總結:
從右上角順時針方向:
1. 內連接 (B圓圈著色為紅色,重疊部分著色為綠色)
-
目的:只傳回兩個表之間存在匹配項的行。
-
SQL語句:SELECT A.Colour, B.Colour FROM A INNER JOIN B ON A.Colour = B.Colour
-
說明:SQL語句優先考慮表B,將其放在「ON」子句的前面,但結果行著重於兩個表之間共享的資料。
2. 內連接 (僅包含B圓圈,重疊部分著色為綠色)
-
目的:僅傳回B圓圈中與A圓圈中的任何行連接的行(在本例中,沒有)。
-
SQL語句:SELECT A.Colour, B.Colour FROM A INNER JOIN B ON A.Colour NOT IN ('Green','Blue')
-
說明:連接條件從A圓圈中排除某些值,有效地將結果行限制為B圓圈。
3. 交叉連接 (所有資料都包含)
-
目的:將A圓圈中的每一行與B圓圈中的每一行組合,而不管是否有重疊或匹配。
-
SQL語句:SELECT A.Colour, B.Colour FROM A CROSS JOIN B
-
說明:結果行數是每個表中行數的乘積(在本例中為4x4 = 16)。
4. 左外連接 (包含A圓圈,重疊部分著色為綠色)
-
目的:包含A圓圈中的所有行(不管是否有重疊),並連接B圓圈中的匹配行。
-
SQL語句:SELECT A.Colour, B.Colour FROM A LEFT OUTER JOIN B ON A.Colour = B.Colour
-
說明:保留A圓圈中所有不符合的行,並在B圓圈的列中使用NULL值。
5. 左外連接 (排除A圓圈,重疊部分著色為綠色)
-
目的:與先前的連接類似,但只包含A圓圈中不與B圓圈中的任何行連接的行。
-
SQL語句:SELECT A.Colour, B.Colour FROM A LEFT OUTER JOIN B ON A.Colour = B.Colour WHERE B.Colour IS NULL
-
說明:隔離A圓圈中不匹配的行,在本例中產生單獨的紅色行。
6. 右外連接 (包含B圓圈,重疊部分著色為綠色)
-
目的:與左外連接類似,但保留B圓圈中不匹配的行,並在A圓圈的列中使用NULL值。
-
SQL語句:SELECT A.Colour, B.Colour FROM A RIGHT OUTER JOIN B ON A.Colour = B.Colour
-
說明:在本例中只包含B圓圈中的藍色行,因為A圓圈中沒有匹配項。
7. 全外連接 (所有資料都包含)
-
目的:組合A圓圈和B圓圈中的所有行,保留不匹配的行,並為不匹配行中的列填充NULL值。
-
SQL語句:SELECT A.Colour, B.Colour FROM A FULL OUTER JOIN B ON A.Colour = B.Colour
-
說明:結果行包含兩個圓圈,不符的行用NULL值擴展。
以上是維恩圖如何說明不同類型的 SQL 連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!