資源描述:
《oracle+表連接方式(內(nèi)連接-外連接-自連接)+詳解》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、Tianlesoftware學(xué)習(xí)OracleOracle表之間的連接分為三種:1.內(nèi)連接(自然連接)2.外連接(1)左外連接(左邊的表不加限制)(2)右外連接(右邊的表不加限制)(3)全外連接(左右兩表都不加限制)3.自連接(同一張表內(nèi)的連接)SQL的標(biāo)準(zhǔn)語法:selecttable1.column,table2.columnfromtable1[inner
2、left
3、right
4、full]jointable2ontable1.column1=table2.column2;innerjoin表示內(nèi)連接;leftjoin表示左外連接;rightjoin表示右外連接
5、;fulljoin表示完全外連接;on子句用于指定連接條件。注意:如果使用from子句指定內(nèi)、外連接,則必須要使用on子句指定連接條件;如果使用(+)操作符指定外連接,則必須使用where子句指定連接條件。一.內(nèi)連接(InnerJoin/Join)1.1InnerJoinInnerjoin邏輯運(yùn)算符返回滿足第一個(gè)(頂端)輸入與第二個(gè)(底端)輸入聯(lián)接的每一行。這個(gè)和用select查詢多表是一樣的效果,所以內(nèi)連接用的很少。還有一點(diǎn)要說明的就是Join默認(rèn)就是innerjoin。所以我們在寫內(nèi)連接的時(shí)候可以省略inner這個(gè)關(guān)鍵字。1.2下面舉例來說明內(nèi)連接:1.2.
6、1先創(chuàng)建2張測試表并插入數(shù)據(jù):SQL>select*fromdave;IDNAME--------------------1dave2bl1bl2daveSQL>select*frombl;IDNAME--------------------1dave2blBlog:http://blog.csdn.net/tianlesoftwareQQ群:62697716Tianlesoftware學(xué)習(xí)Oracle1.2.3用內(nèi)鏈接進(jìn)行查詢:SQL>Selecta.id,a.name,b.namefromdaveainnerjoinblbona.id=b.id;--標(biāo)準(zhǔn)寫法
7、IDNAMENAME------------------------------1davedave2blbl1bldave2daveblSQL>Selecta.id,a.name,b.namefromdaveajoinblbona.id=b.id;--這里省略了inner關(guān)鍵字IDNAMENAME------------------------------1davedave2blbl1bldave2daveblSQL>Selecta.id,a.name,b.namefromdavea,blbwherea.id=b.id;--select多表查詢IDNAMENAM
8、E------------------------------1davedave2blbl1bldave2davebl從這三個(gè)SQL的結(jié)果我們也可以看出,他們的作用是一樣的。1.3自然連接(Naturaljoin)自然連接是在兩張表中尋找那些數(shù)據(jù)類型和列名都相同的字段,然后自動(dòng)地將他們連接起來,并返回所有符合條件按的結(jié)果。先看一下自然連接的例子:SQL>Selectid,namefromdaveanaturaljoinblb;IDNAME--------------------1dave2bl這里我們并沒有指定連接的條件,實(shí)際上oracle為我們自作主張的將,d
9、ave表中的id和name字段與bl表中的id和name字段進(jìn)行了連接。也就是實(shí)際上相當(dāng)于SQL>Selectdave.id,bl.nameFromdavejoinblondave.id=bl.idanddave.name=bl.name;IDNAME--------------------1dave2bl因此,我們也可以將自然連接理解為內(nèi)連接的一種。有關(guān)自然連接的一些注意事項(xiàng):(1).如果做自然連接的兩個(gè)表的有多個(gè)字段都滿足有相同名稱個(gè)類型,那么他們會(huì)被作為自然連接的條件。(2).如果自然連接的兩個(gè)表僅是字段名稱相同,但數(shù)據(jù)類型不同,那么將會(huì)返回一個(gè)錯(cuò)誤。Bl
10、og:http://blog.csdn.net/tianlesoftwareQQ群:62697716Tianlesoftware學(xué)習(xí)Oracle一.外連接(OuterJoin)outerjoin則會(huì)返回每個(gè)滿足第一個(gè)(頂端)輸入與第二個(gè)(底端)輸入的聯(lián)接的行。它還返回任何在第二個(gè)輸入中沒有匹配行的第一個(gè)輸入中的行。外連接分為三種:左外連接,右外連接,全外連接。對應(yīng)SQL:LEFT/RIGHT/FULLOUTERJOIN。通常我們省略outer這個(gè)關(guān)鍵字。寫成:LEFT/RIGHT/FULLJOIN。在左外連接和右外連接時(shí)都會(huì)以一張表為基表,該表的內(nèi)容會(huì)全部顯示,
11、然后加上兩張表匹配的內(nèi)容