資源描述:
《oracle多種表連接方式》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、1.內(nèi)連接(自然連接)2.外連接(1)左外連接(左邊的表不加限制)(2)右外連接(右邊的表不加限制)(3)全外連接(左右兩表都不加限制)3.自連接(同一張表內(nèi)的連接)SQL的標(biāo)準(zhǔn)語法:1.select?table1.column,table2.column?2.from?table1?[inner?
2、?left?
3、?right?
4、?full?]?join?table2?on?table1.column1?=?table2.column2;?innerjoin表示內(nèi)連接;leftjoin表示左外連接;ri
5、ghtjoin表示右外連接;fulljoin表示完全外連接;on子句用于指定連接條件。注意:如果使用from子句指定內(nèi)、外連接,則必須要使用on子句指定連接條件;如果使用(+)操作符指定外連接,則必須使用where子句指定連接條件。一.內(nèi)連接(InnerJoin/Join)1.1?InnerJoinInnerjoin邏輯運(yùn)算符返回滿足第一個(gè)(頂端)輸入與第二個(gè)(底端)輸入聯(lián)接的每一行。這個(gè)和用select查詢多表是一樣的效果,所以內(nèi)連接用的很少。還有一點(diǎn)要說明的就是Join默認(rèn)就是innerjoin。所
6、以我們在寫內(nèi)連接的時(shí)候可以省略inner這個(gè)關(guān)鍵字。1.2下面舉例來說明內(nèi)連接:1.2.1先創(chuàng)建2張測試表并插入數(shù)據(jù):1.SQL>?select?*?from?dave;?2.ID??NAME?3.----------?----------?4.1??dave?5.2??bl?6.1??bl?7.2??dave?8.?9.?10.SQL>?select?*?from?bl;?11.ID??NAME?12.----------?----------?13.1??dave?14.2??bl?1.2.3用內(nèi)鏈
7、接進(jìn)行查詢:1.SQL>?Select?a.id,a.name,b.name?from?dave?a?inner?join?bl?b?on?a.id=b.id;???--?標(biāo)準(zhǔn)寫法?2.ID?NAME???????NAME?3.----------?----------?----------?4.1?dave???????dave?5.2?bl?????????bl?6.1?bl?????????dave?7.2?dave???????bl?8.?9.?10.SQL>?Select?a.id,a.nam
8、e,b.name?from?dave?a?join?bl?b?on?a.id=b.id;??--?這里省略了inner?關(guān)鍵字?11.ID?NAME???????NAME?12.----------?----------?----------?13.1?dave???????dave?14.2?bl?????????bl?15.1?bl?????????dave?16.2?dave???????bl?17.?18.?19.SQL>?Select?a.id,a.name,b.name?from?dave?
9、a,bl?b?where?a.id=b.id;??--?select?多表查詢?20.ID?NAME???????NAME?1.----------?----------?----------?2.1?dave???????dave?3.2?bl?????????bl?4.1?bl?????????dave?5.2?dave???????bl?從這三個(gè)SQL的結(jié)果我們也可以看出,他們的作用是一樣的。1.3自然連接(Naturaljoin)自然連接是在兩張表中尋找那些數(shù)據(jù)類型和列名都相同的字段,然后自動(dòng)地
10、將他們連接起來,并返回所有符合條件按的結(jié)果。先看一下自然連接的例子:1.SQL>?Select?id,name?from?dave?a?natural?join?bl?b;?2.ID?NAME?3.----------?----------?4.1?dave?5.2?bl?這里我們并沒有指定連接的條件,實(shí)際上oracle為我們自作主張的將,dave表中的id和name字段與bl表中的id和name字段進(jìn)行了連接。也就是實(shí)際上相當(dāng)于1.SQL>?Select?dave.id,bl.name?2.From?
11、dave?join?bl?on?dave.id?=?bl.id?and?dave.name=bl.name;?3.ID?NAME?4.----------?----------?5.1?dave?6.2?bl?因此,我們也可以將自然連接理解為內(nèi)連接的一種。有關(guān)自然連接的一些注意事項(xiàng):(1).如果做自然連接的兩個(gè)表的有多個(gè)字段都滿足有相同名稱和類型,那么他們會(huì)被作為自然連接的條件。(2).如果自然連接的兩個(gè)表僅是字段名稱相同,但數(shù)據(jù)類型不同,