表連接的類型:
1.內(nèi)連接(inner join):是最常用的一種連接方式,只返回兩個(gè)數(shù)據(jù)集合之間匹配關(guān)系的行,將位于兩個(gè)互相交叉的數(shù)據(jù)集合中重疊部分以內(nèi)的數(shù)據(jù)行連接起來(lái)。
例子:在表A和表B中使用內(nèi)連接查詢學(xué)生姓名,學(xué)校和職業(yè)。
實(shí)現(xiàn)方式一:
select A.姓名,A.學(xué)校,B.職業(yè) from A,B where A.姓名=B.姓名
含義:結(jié)果顯示表A的姓名和學(xué)校,表B的職業(yè),從A,B表中查詢,查詢條件是表A的姓名等于表B的姓名。
實(shí)現(xiàn)方式二:
select A.姓名,A.學(xué)校,B.職業(yè) from A inner join B on A.姓名=B.姓名
含義:表A內(nèi)連接表B,內(nèi)連接條件是表A的姓名等于表B的姓名。
注:內(nèi)連接的結(jié)果只顯示表A和表B共同擁有的姓名的行,姓名不相同的舍棄。
2.外連接:是對(duì)內(nèi)連接的擴(kuò)充,顯示不匹配的數(shù)據(jù)。
1).左外連接(left join 或 left outer join):結(jié)果保留左表的所有行,如果左表的某一行在右表中沒有匹配行,則將為右表的返回空值,否則返回相應(yīng)值。
例子:在表A和表B中使用左外連接查詢學(xué)生姓名,學(xué)校和職業(yè)。
select A.姓名,A.學(xué)校,B.姓名,B.職業(yè) from A left join B on A.姓名=B.姓名
含義:結(jié)果顯示出左邊A表的所有姓名行數(shù),B表中沒有匹配的姓名,姓名和職業(yè)就顯示為空值(null)。
2).右外連接(right join 或right outer join):與左外連接相反,結(jié)果返回右表的所有行,如果右表的某一行在左表中沒有匹配行,則將為左表的返回空值,否則返回相應(yīng)值。
例子:在表A和表B中使用右外連接查詢學(xué)生姓名,學(xué)校和職業(yè)。
select A.姓名,A.學(xué)校,B.姓名,B.職業(yè) from A right join B on A.姓名=B.姓名
含義:結(jié)果顯示出右邊B表的所有姓名行數(shù),A表中沒有匹配的姓名,姓名和學(xué)校就顯示為空值(null)。
3).全連接/完整外連接(full join 或 full outer join):結(jié)果返回左表和右表的所有行,當(dāng)某一行在另一個(gè)表中沒有匹配行時(shí),另一個(gè)表返回值就為空值,否則返回相應(yīng)值。
例子:在表A和表B中使用右外連接查詢學(xué)生姓名,學(xué)校和職業(yè)。
select A.姓名,A.學(xué)校,B.姓名,B.職業(yè) from A full join B on A.姓名=B.姓名
含義:結(jié)果顯示出A和B表的所有姓名行數(shù),A表中沒有匹配B表中的姓名,A的姓名和學(xué)校就顯示為空值(null)。B表中沒有匹配A表中的姓名,B的姓名和職業(yè)就顯示為空值(null)。
3.交叉連接(cross join):是表之間沒有任何關(guān)聯(lián)條件,查詢的結(jié)果是返回左表的每一行與右表的每一行挨個(gè)連接組合,相當(dāng)于相乘。應(yīng)用的場(chǎng)合較少,作為了解。
例子:在表A和表B中使用交叉連接查詢學(xué)生姓名,學(xué)校和職業(yè)。
select A.姓名,A.學(xué)校,B.姓名,B.職業(yè) from A full join B
含義:A表中的每一行都和B表中的每一行組合成為新行,結(jié)果總行數(shù)等于A的行數(shù)乘以B的行數(shù)
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比普蘭店網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式普蘭店網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋普蘭店地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。