1. 程式人生 > >Mysql學習筆記2-內連線和外連線

Mysql學習筆記2-內連線和外連線

本節以學生和課程表為例子,來實際操作一下內連線和外連線,本節參考Anthony_tester的部落格,感謝分享。

內連線

內連線(自然連線): 只有兩個表相匹配的行才能在結果集中出現
- 首先建立學生表和課程表
這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

  • 內連線inner join查詢
    這裡寫圖片描述

  • 在查詢資料的時候,不同表有同名欄位,這個時候需要加上表名才能區分,而表名太長,通常使用別名。其中on換成where,結果是一樣的。
    這裡寫圖片描述

外連線

外連線有左右外連線之分。外連線(outer join),是以某張表為主,取出裡面的所有記錄,然後每條與另外一張表進行連線。不管能不能匹配上條件,最終都會保留,也就是說,能匹配,正確保留;不能匹配,其他表的欄位都置空(NULL)。
外連線分兩種情況,是以某張表為主,有主表。當以左表為主表,這個叫left join,左外連線,我們習慣簡稱左連線;當以右表為主表,這個叫right join,右外連線,同樣,簡稱右連線。
  • 左連線

    如果主表的某欄位為空的時候,匹配後,右表其他欄位自動為NULL。例如左表的c_name為空,匹配後右表其他欄位都預設為空。
    

    這裡寫圖片描述

  • 右連線
    下面顯示3條結果是因為,當前右表為主,而且副表有name為null,和主表匹配不上,匹配不上所以不會顯示該條記錄。
    這裡寫圖片描述

    左右連線是可以互相轉換的。並且我們可以看出,雖然左連線和右連線有主表區分,但是顯示結果,左表的資料始終在左邊,右表資料顯示在右邊。
    

    這裡寫圖片描述