共計 3157 個字符,預計需要花費 8 分鐘才能閱讀完成。
這篇文章主要介紹了 SQL 如何連接查詢 2 外連接,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
外連接主要包括左連接、右連接和完整外部連接。
1)左連接:Left Join 或 Left Outer Join
左連接的結果集包括 LEFT OUTER 子句中指定的左表的所有行,而不僅僅是聯接列所匹配的行。如果左表的某行在右表中沒有匹配行,則在相關聯的結果集行中右表的所有選擇列表列均為空值(Null)。
我們看對應的 SQL 語句:
Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish
From Student
Left JOIN BorrowBook
On Student.StudentID = BorrowBook.StudentID
運行的結果如下:
StudentName StudentAge BorrowBookName BorrowBookPublish
———————————————————————————
張三 25 馬克思主義政治經濟學 電子工業出版社
李四 26 *** 思想概論 高等教育出版社
王五 27 鄧小平理論 人民郵電出版社
趙六 28 大學生思想道德修養 中國鐵道出版社
無名氏 27 NULL NULL
(所影響的行數為 5 行)
可以看到的是,它查詢的結果是以左表 Student 為主,Student 對應的 StudentID 在右表 BorrowBook 如果不存在的話,就會用 NULL 值來代替。
2) 右連接:Right Join 或 Right Outer Join
右連接和左連接相反,它將返回右表的所有行。如果右表的某行在左表中沒有匹配行,則將為左表返回空值(Null)。
我們看對應的 SQL 語句
Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish
From Student
Right JOIN BorrowBook
On Student.StudentID = BorrowBook.StudentID
運行的結果如下:
StudentName StudentAge BorrowBookName BorrowBookPublish
———————————————————————————————————————-
張三 25 馬克思主義政治經濟學 電子工業出版社
李四 26 *** 思想概論 高等教育出版社
王五 27 鄧小平理論 人民郵電出版社
趙六 28 大學生思想道德修養 中國鐵道出版社
NULL NULL C 語言程序設計 高等教育出版社
(所影響的行數為 5 行)
可以看到的是,它查詢的結果是以右表 BorrowBook 為主,BorrowBook 對應的 StudentID 在左表 Student 如果不存在的話,就會用 NULL 值來代替。
3) 完整外部聯接:Full Join 或 Full Outer Join
完整外部聯接返回左表和右表中的所有行。當某行在另一個表中沒有匹配行時,則另一個表的選擇列表列包含空值。如果表之間有匹配行,則整個結果集行包含基表的數據值。
我們看對應的 SQL 語句
Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish
From Student
FULL OUTER JOIN BorrowBook
On Student.StudentID = BorrowBook.StudentID
結果如下:
StudentName StudentAge BorrowBookName BorrowBookPublish ———————————————————————————————————————-
NULL NULL C 語言程序設計 高等教育出版社
張三 25 馬克思主義政治經濟學 電子工業出版社
李四 26 *** 思想概論 高等教育出版社
王五 27 鄧小平理論 人民郵電出版社
趙六 28 大學生思想道德修養 中國鐵道出版社
無名氏 27 NULL NULL
(所影響的行數為 6 行)
可以看到的是,它查詢的結果除了把相對應完全匹配的記錄查出來以后,還會把左連接及右連接兩種情形都包括,對應的值用 NULL 值來代替。
交叉連接
交叉連接(CROSS JOIN),就是指不帶 W H E R E 子句的查詢。在數學上,就是表的笛卡爾積。也就是它查詢出來的記錄數行為兩個表的乘積,對應記錄也就是為表 A * 表 B。
我們看對應的 SQL 語句
Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish
From Student Cross Join BorrowBook
運行的結果如下:
StudentName StudentAge BorrowBookName BorrowBookPublish
———————————————————————————
張三 25 馬克思主義政治經濟學 電子工業出版社
李四 26 馬克思主義政治經濟學 電子工業出版社
王五 27 馬克思主義政治經濟學 電子工業出版社
趙六 28 馬克思主義政治經濟學 電子工業出版社
無名氏 27 馬克思主義政治經濟學 電子工業出版社
張三 25 *** 思想概論 高等教育出版社
李四 26 *** 思想概論 高等教育出版社
王五 27 *** 思想概論 高等教育出版社
趙六 28 *** 思想概論 高等教育出版社
無名氏 27 *** 思想概論 高等教育出版社
張三 25 鄧小平理論 人民郵電出版社
李四 26 鄧小平理論 人民郵電出版社
王五 27 鄧小平理論 人民郵電出版社
趙六 28 鄧小平理論 人民郵電出版社
無名氏 27 鄧小平理論 人民郵電出版社
張三 25 大學生思想道德修養 中國鐵道出版社
李四 26 大學生思想道德修養 中國鐵道出版社
王五 27 大學生思想道德修養 中國鐵道出版社
趙六 28 大學生思想道德修養 中國鐵道出版社
無名氏 27 大學生思想道德修養 中國鐵道出版社
張三 25 C 語言程序設計 高等教育出版社
李四 26 C 語言程序設計 高等教育出版社
王五 27 C 語言程序設計 高等教育出版社
趙六 28 C 語言程序設計 高等教育出版社
無名氏 27 C 語言程序設計 高等教育出版社
(所影響的行數為 25 行)
可以看到的是,它把表 Student 中的每一行和 BorrowBook 中的每一條記錄都進行關聯,返回的記錄數為 5 *5=25 行,即笛卡爾積,它執行的語句也就等效于
Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish
From Student,BorrowBook
感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“SQL 如何連接查詢 2 外連接”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!