SQL錶鏈接圖解:各類鏈接關係圖

估計不少人在學習SQL錶鏈接的時候都會被各類類型的錶鏈接搞得稀裏糊塗的,如今好了,有了下面的圖,就能夠很直觀的區分各類錶鏈接了學習

能夠經過圖看下spa

 

多表查詢分爲 內、外鏈接orm

外鏈接分爲左鏈接(left join 或left outer join)、右鏈接(right join 或者 right outer join)、和完整外部鏈接 (full join 或者 full outer join)table

左鏈接(left join 或 left outer join)的結果就是left join子句中的左表的全部行,而不單單是連接列所匹配的行,若是左表中的某行在右表中沒有匹配,則在相關聯的結果行中右表的全部選擇列均爲空值(NULL)form

SQL語法 select * from table1 left join table2 on table1.條件列名 = table2.條件列名;select

註釋: 顯示的就是table1中的全部列和能匹配的列語法

右鏈接(right join 或 right outer join )在這裏不作多說這左鏈接很象可是是相反的,只說一下語法im

select *from table1 right join table2 on table1. 條件列= table2.條件列數據

徹底外部鏈接(full join 或 full outer join)查詢

顯示左右表中的全部行,當某一個表中沒有匹配的行時,則另外一個表的選擇列表列包含空值(NULL)若是有則顯示所有數據

SQL語法:

select *from table1 full join table2 on table1.條件列名= table2.條件列名

內鏈接:
概念:內鏈接就是用比較運算符比較要用鏈接列的值的鏈接

內鏈接(join 或者inner join )

SQL語法:

select *fron table1 join table2 on table1.條件列名 = table2.條件列名

返回符合匹配條件的兩表列

等價於:

select A* ,B* from table1 A ,table2 B where A.條件列名 =B.條件列名
select *form table1 cross join table2 where table1.條件列名 = table2.條件列名(注: Cross join 後面不能跟on 只能用where)

交叉鏈接(徹底)

概念:沒有用where子句的交叉鏈接將產生鏈接所涉及的笛卡爾積第一個表的行數乘以第二個表的行數等於笛卡爾積和結果集的大小

交叉鏈接: Cross join(不帶條件where,若是帶返回或顯示的是匹配的行數)

SQL語法:

select *from table1 cross join table2

若是有條件(where)

select * from table1 cross join table2 where table1. 條件列名= table2.條件列名

等價於

select *from table1,table2 (不帶where)

相關文章
相關標籤/搜索