日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL连接学习总结

發布時間:2025/4/14 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL连接学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SQL連接學習總結


一 SQL 連接(JOIN)

SQL join 用于把來自兩個或多個表的行結合起來。
SQL JOIN 子句用于把來自兩個或多個表的行結合起來,基于這些表之間的共同字段。
最常見的 JOIN 類型:SQL INNER JOIN(簡單的 JOIN)。?
SQL INNER JOIN 從多個表中返回滿足 JOIN 條件的所有行。


不同的 SQL JOIN
INNER JOIN:如果表中有至少一個匹配,則返回行
LEFT JOIN:即使右表中沒有匹配,也從左表返回所有的行
RIGHT JOIN:即使左表中沒有匹配,也從右表返回所有的行
FULL JOIN:只要其中一個表中存在匹配,則返回行


SQL INNER JOIN
INNER JOIN 關鍵字在表中存在至少一個匹配時返回行。
INNER JOIN 與 JOIN 是相同的。


SQL LEFT JOIN
LEFT JOIN 關鍵字從左表(table1)返回所有的行,即使右表(table2)中沒有匹配。如果右表中沒有匹配,則結果為 NULL。
在某些數據庫中,LEFT JOIN 稱為 LEFT OUTER JOIN。


SQL RIGHT JOIN
RIGHT JOIN 關鍵字從右表(table2)返回所有的行,即使左表(table1)中沒有匹配。如果左表中沒有匹配,則結果為 NULL。
在某些數據庫中,RIGHT JOIN 稱為 RIGHT OUTER JOIN。


SQL FULL OUTER JOIN
FULL OUTER JOIN 關鍵字只要左表(table1)和右表(table2)其中一個表中存在匹配,則返回行.
FULL OUTER JOIN 關鍵字結合了 LEFT JOIN 和 RIGHT JOIN 的結果。
FULL OUTER JOIN 關鍵字返回左表(Websites)和右表(access_log)中所有的行。


二 名詞的說明

內聯接。包括相等聯接和自然聯接。 ? ??
內聯接使用比較運算符根據每個表共有的列的值匹配兩個表中的行。例如,檢索 students和courses表中學生標識號相同的所有行。 ??
? ??
外聯接。外聯接可以是左向外聯接、右向外聯接或完整外部聯接。 ? ??
完整外部聯接返回左表和右表中的所有行。當某行在另一個表中沒有匹配行時,則另一個表的選擇列表列包含空值。如果表之間有匹配行,則整個結果集行包含基表的數據值。 ??


交叉聯接 ??
交叉聯接返回左表中的所有行,左表中的每一行與右表中的所有行組合。交叉聯接也稱作笛卡爾積。


三 例子

? ?
-------------------------------------------------
? a表 ? ? id ? name ? ? b表 ? ? id ? job ? parent_id ??
? ? ? ? ? ? ? 1 ? 張3 ? ? ? ? ? ? ? ? ? 1 ? ? 23 ? ? 1 ??
? ? ? ? ? ? ? 2 ? 李四 ? ? ? ? ? ? ? ? 2 ? ? 34 ? ? 2 ??
? ? ? ? ? ? ? 3 ? 王武 ? ? ? ? ? ? ? ? 3 ? ? 34 ? ? 4 ? ? ??
? a.id同parent_id ? 存在關系 ??
-------------------------------------------------- ? ?
1) 內連接 ??
?select ? a.*,b.* ? from ? a ? inner ? join ? b ? ? on ? a.id=b.parent_id ? ? ??
?結果是 ? ??
?1 ? 張3 ? ? ? ? ? ? ? ? ? 1 ? ? 23 ? ? 1 ??
?2 ? 李四 ? ? ? ? ? ? ? ? ?2 ? ? 34 ? ? 2 ??


2)左連接 ??
?select ? a.*,b.* ? from ? a ? left ? join ? b ? ? on ? a.id=b.parent_id ? ? ??
?結果是 ? ??
?1 ? 張3 ? ? ? ? ? ? ? ? ? 1 ? ? 23 ? ? 1 ??
?2 ? 李四 ? ? ? ? ? ? ? ? ?2 ? ? 34 ? ? 2 ??
?3 ? 王武 ? ? ? ? ? ? ? ? ?null ??


3) 右連接 ??
?select ? a.*,b.* ? from ? a ? right ? join ? b ? ? on ? a.id=b.parent_id ? ? ??
?結果是 ? ??
?1 ? 張3 ? ? ? ? ? ? ? ? ? 1 ? ? 23 ? ? 1 ??
?2 ? 李四 ? ? ? ? ? ? ? ? ?2 ? ? 34 ? ? 2 ??
?null ? ? ? ? ? ? ? ? ? ? ? 3 ? ? 34 ? ? 4 ??


4) 完全連接 ??
select ? a.*,b.* ? from ? a ? full ? join ? b ? ? on ? a.id=b.parent_id ??
結果是 ? ??
?1 ? 張3 ? ? ? ? ? ? ? ? ?1 ? ? 23 ? ? 1 ??
?2 ? 李四 ? ? ? ? ? ? ? ? 2 ? ? 34 ? ? 2 ??
?null ? ? ? ? ? ? ?    ?3 ? ? 34 ? ? 4 ??
?3 ? 王武 ? ? ? ? ? ? ? ? null

總結

以上是生活随笔為你收集整理的SQL连接学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。