SQL鏈接能夠分爲內鏈接、外鏈接、交叉鏈接。數據庫
數據庫數據:ui
book表 stu表3d
1.內鏈接code
1.1.等值鏈接:在鏈接條件中使用等於號(=)運算符比較被鏈接列的列值,其查詢結果中列出被鏈接表中的全部列,包括其中的重複列。blog
1.2.不等值鏈接:在鏈接條件使用除等於運算符之外的其它比較運算符比較被鏈接的列的列值。這些運算符包括>、>=、<=、<、!>、!<和<>。class
1.3.天然鏈接:在鏈接條件中使用等於(=)運算符比較被鏈接列的列值,但它使用選擇列表指出查詢結果集合中所包括的列,並刪除鏈接表中的重複列。select
內鏈接:內鏈接查詢操做列出與鏈接條件匹配的數據行,它使用比較運算符比較被鏈接列的列值。im
select * from book as a,stu as b where a.sutid = b.stuid select * from book as a inner join stu as b on a.sutid = b.stuid
內鏈接能夠使用上面兩種方式,其中第二種方式的inner能夠省略。d3
其鏈接結果如上圖,是按照a.stuid = b.stuid進行鏈接。數據
2.外鏈接
2.1.左聯接:是以左表爲基準,將a.stuid = b.stuid的數據進行鏈接,而後將左表沒有的對應項顯示,右表的列爲NULL
select * from book as a left join stu as b on a.sutid = b.stuid
2.2.右鏈接:是以右表爲基準,將a.stuid = b.stuid的數據進行鏈接,然以將右表沒有的對應項顯示,左表的列爲NULL
select * from book as a right join stu as b on a.sutid = b.stuid
2.3.全鏈接:完整外部聯接返回左表和右表中的全部行。當某行在另外一個表中沒有匹配行時,則另外一個表的選擇列表列包含空值。若是表之間有匹配行,則整個結果集行包含基表的數據值。
select * from book as a full outer join stu as b on a.sutid = b.stuid
3.交叉鏈接
交叉鏈接:交叉聯接返回左表中的全部行,左表中的每一行與右表中的全部行組合。交叉聯接也稱做笛卡爾積。
select * from book as a cross join stu as b order by a.id