內連接、左外連接、右外連接、交叉連接及其區別

轉載自:http://blog.csdn.net/xukun5137/article/details/51722960

在學習mybatis,發現數據庫這塊學的不好,又找資料學習一下。發現這篇講內連接外連接的還不錯,就轉載過來了,順便添加點自己學到的內容(SQL查詢藝術一書)。

首先建立兩張表AB

A

Aidint類型,無符號遞增,主鍵

namevarchar類型


B

Bidint類型,無符號遞增,主鍵

namevarchar類型

ageint類型


 

  1. 內連接(INNER JOIN
  2. JOIN默認爲INNER JOIN

利用內連接可獲取兩表的公共部分的記錄。會顯示兩張表匹配的所有列信息

select * from A JOIN B ON A.name=B.name


  1. 外連接

外連接分爲兩種,左連接(Left JOIN)和右連接(Right JOIN)

  1. 左連接(Left JOIN)
  2. 左外連接=內連接+左邊表中失配的元組

select * from A Left JOIN B ON A.name=B.name


  1. 右連接(Right JOIN)
  2. 右外連接=內連接+右邊表中失配的元組

select * from A Right JOIN B ON A.Aid=B.Bid


全外連接(FULL OUTER JOIN)

全外連接=內連接+左邊表中失配的元組+右邊表中失配的元組


  1. 交叉連接(CROSS JOIN)

有兩種,顯式的和隱式的,不帶ON子句,返回的是兩表的乘積,也叫笛卡爾積。

  1. 顯式:

select A.*,B.* from A CROSS  JOIN B ON A.name=B.name


  1. 隱式:

select A.*,B.* from A ,B WHERE A.name=B.name


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章