內連接:內連接也叫連接,是最早的一種連接。還可以被稱為普通連接或者自然連接,內連接是從結果表中刪除與其他被連接表中沒有匹配行的所有行,所以內連接可能會丟失信息。
結果:為兩個聯接表中的匹配行的聯接
先放兩個表 一個學生表;一個成績表
這是進行內連接之后的表
select *
from Student inner join Score on Score.s_id=Student.s_id
展現出來的是共同的數據
左連接(左外連接)
將返回右表的所有行。如果左表的某行在右表中沒有匹配行,則將為右表返回空值左連接:select *from Student LEFT JOIN Score ON Student.s_id=Score.s_id
以左表為主表,右表沒數據為null
左外連接
如下圖:select *from Student left outer JOIN Score ON Student.s_id=Score.s_id
右連接(右外連接)
將返回右表的所有行。如果右表的某行在左表中沒有匹配行,則將為左表返回空值;
以右表為主表,左表中沒數據的為null
select *from Student right JOIN Score ON Student.s_id=Score.s_id
右外連接:select *from Student right outer JOIN Score ON Student.s_id=Score.s_id
全外連接(FULL JOIN 或 FULL OUTER JOIN)
完整外部聯接返回左表和右表中的所有行。當某行在另一個表中沒有匹配行時,則另一個表的選擇列表列包含空值。如果表之間有匹配行,則整個結果集行包含基表的數據值。
select *from Student full JOIN Score ON Student.s_id=Score.s_id
select *from Student full outer JOIN Score ON Student.s_id=Score.s_id
笛卡爾積:
交叉連接即笛卡爾積,結果為A×B
select *from Student cross JOIN Score
自然連接(natural join)自然連接是一種特殊的等值連接,他要求兩個關系表中進行比較的必須是相同的屬性列,無須添加連接條件,並且在結果中消除重復的屬性列。要求是兩個這兩個關系中參與比較的屬性列必須是同名、同屬性。如果兩個關系中有多組這樣的屬性,默認是全部比較的