分爲三種:交叉鏈接、內鏈接、外鏈接。spa
沒有where子句的交叉鏈接將產生鏈接表的笛卡爾積,等同於inner join。select
select * from R cross join S;遍歷
內鏈接分爲三種:天然鏈接、等值鏈接、非等值鏈接。查詢
天然鏈接 natural join:在鏈接條件中使用等於=運算符比較被鏈接列的列值,但刪除鏈接表中重複列。join
select * from R natural join S;oss
等值鏈接 :使用等於=比較鏈接列的列值,在查詢結果中列出接連表中的全部列,包括其中的重複列。運算符
select * from R join S where R.C = S.C;
或
select * from R inner join S where R.C = S.C;
非等值鏈接 :在鏈接條件中,能夠使用其餘比較運算符,比較被鏈接列的列值,如:<、>、!=等。
外鏈接分爲三類:全外鏈接、左外鏈接、右外鏈接。
左外鏈接 left join / left outer join
select * from R left join S on R.C = S.C;
左外鏈接要遍歷左表的全部記錄,右表沒有的用null表示。
右外鏈接 right join / right outer join
select * from R right join S on R.C = S.C;
右外鏈接要遍歷右表全部的記錄,左表沒有的用null表示。
全外鏈接 full join / full outer join
select * from R full join S on R.C = S.C;
全鏈接產生的全部記錄(雙方匹配記錄)在表R和表S。若是沒有匹配,則對面將包含null。