實際上,在應(yīng)用中所需要的數(shù)據(jù)來自一個表的情況非常少,經(jīng)常會需要查詢兩個或兩個以上的表。這類查詢叫做連接查詢。這種連接查詢通常建立在存在相互關(guān)聯(lián)的父子表之間;表的連接查詢包括等值連接、非等值連接、自連接、內(nèi)連接和外連接。
SQL查詢:[5]連接查詢――工具/原料已安裝有Oracle數(shù)據(jù)庫11g 已安裝有Oracle SQL DeveloperSQL查詢:[5]連接查詢――基本連接查詢
SQL查詢:[5]連接查詢 1、
等值連接:
等值連接是最常見的一種連接查詢,通常是在主外鍵關(guān)聯(lián)關(guān)系的表間建立,并將連接條件設(shè)定為有關(guān)系的列,使用“=”連接相關(guān)的表。如下圖:
SQL查詢:[5]連接查詢 2、
非等值連接:
非等值連接是指在多個表中使用非等號連接,查詢在多個表中有非等值關(guān)聯(lián)關(guān)系的數(shù)據(jù),非等值連接操作符包括>、>=、<、<=、<>以及BETWEEN...AND、LIKE、IN等。具體實現(xiàn)如下圖:
SQL查詢:[5]連接查詢 3、
自連接:
自連接是一種比較特殊的連接查詢,數(shù)據(jù)來源是一個表。如下圖:
SQL查詢:[5]連接查詢――內(nèi)連接和外連接:SQL查詢:[5]連接查詢 1、
上述所介紹的連接查詢都屬于內(nèi)連接,即返回滿足連接條件的數(shù)據(jù)記錄。在有些情況下需要返回那些不滿足連接條件的記錄,此時需要使用外連接來返回那些不滿足連接條件的記錄。在9I之前外連接在WHERE條件中指定,9I版本之后則一般在FROM短語中指定,9I版本之后外連接語法如下:
SELECT table1.column,table2.column
![5張表連接查詢sql語句 SQL查詢 [5]連接查詢](http://img.413yy.cn/images/b/03250603/250303060325497138330.jpg)
FROM table1 [INNER|LEET|RIGHT|FULL] JOIN table2
ON table1.column1=table2.column2;
9I版本之前外連接語法如下:
SELECT table1.column,table2.column
FROM table1,table2
WHEREtable1.column1 (+)=table2.column2;
SQL查詢:[5]連接查詢 2、
內(nèi)連接:
內(nèi)連接返回所有滿足條件的記錄,內(nèi)連接方式有幾種,第一種是上面介紹的等值連接這種形式,這里就不再重復(fù)介紹;第二種方式是使用NATURAL JOIN短語,將兩個表中所有同名列做等值連接;第三種方式是使用USING子句實現(xiàn)是將兩個表中指定的同名列做等值連接,避免了同名列可能因類型不同導(dǎo)致的錯誤;第四種是使用ON子句。
SQL查詢:[5]連接查詢_鏈接查詢
SQL查詢:[5]連接查詢 3、
左外連接:
左外連接是內(nèi)連接的一種擴展,不止會返回滿足連接條件的記錄,還會返回那些不滿足連接條件的操作符左邊表的其他記錄。
SQL查詢:[5]連接查詢_鏈接查詢
SQL查詢:[5]連接查詢 4、
右外連接:
右外連接和左外連接相似,右外連接不止會返回滿足連接條件的記錄,還會返回那些不滿足連接條件的操作符右邊表的其他記錄。
SQL查詢:[5]連接查詢 5、
全外連接:
全外連接除了會返回滿足連接條件的記錄,還會返回那些不滿足連接條件的所以其他行。
SQL查詢:[5]連接查詢――注意事項多表的連接查詢需要在WHERE子句中定義有效的連接條件。一旦給表定義了別名,在整個SQL語句中就不能再使用表的全名。做連接查詢的多個表中如果有同名的列,必須加上表的前綴。使用NATURAL JOIN短語方式時,偌兩個表中的同名列數(shù)據(jù)類型不同不能比較的話,將會報錯。
愛華網(wǎng)本文地址 » http://www.klfzs.com/a/8104070103/168448.html
愛華網(wǎng)



