亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

附實現(xiàn)sql連接的4種方法 sql自然連接語句( 三 )


語句11:聯(lián)合查詢(UNION JOIN)例句,還沒有找到能執(zhí)行的SQL環(huán)境 。
SELECT O.ID,O.ORDER_NUMBER,O.CUSTOMER_ID,C.ID,C.NAME
FROM ORDERS O UNION JOIN CUSTOMERS C ON C.ID=O.CUSTOMER_ID
語句12:語句11在DB2下的等價實現(xiàn) 。還不知道DB2是否支持語句11呢!
SELECT O.ID,O.ORDER_NUMBER,O.CUSTOMER_ID,C.ID,C.NAME
FROM ORDERS O FULL OUTER JOIN CUSTOMERS C ON C.ID=O.CUSTOMER_ID
EXCEPT
SELECT O.ID,O.ORDER_NUMBER,O.CUSTOMER_ID,C.ID,C.NAME
FROM ORDERS O INNER JOIN CUSTOMERS C ON C.ID=O.CUSTOMER_ID;
語句13:語句11在Oracle下的等價實現(xiàn) 。
SELECT O.ID,O.ORDER_NUMBER,O.CUSTOMER_ID,C.ID,C.NAME
FROM ORDERS O FULL OUTER JOIN CUSTOMERS C ON C.ID=O.CUSTOMER_ID
MINUS
SELECT O.ID,O.ORDER_NUMBER,O.CUSTOMER_ID,C.ID,C.NAME
FROM ORDERS O INNER JOIN CUSTOMERS C ON C.ID=O.CUSTOMER_ID;
查詢結果如下:
五、自然連接(NATURAL INNER JOIN):說真的,這種連接查詢沒有存在的價值,既然是SQL2標準中定義的,就給出個例子看看吧 。自然連接無需指定連接列,SQL會檢查兩個表中是否相同名稱的列,且假設他們在連接條件中使用,并且在連接條件中僅包含一個連接列 。不允許使用ON語句,不允許指定顯示列,顯示列只能用*表示(ORACLE環(huán)境下測試的) 。對于每種連接類型(除了交叉連接外),均可指定NATURAL 。下面給出幾個例子 。
語句14:
SELECT *
FROM ORDERS O NATURAL INNER JOIN CUSTOMERS C;
語句15:
SELECT *
FROM ORDERS O NATURAL LEFT OUTER JOIN CUSTOMERS C;
語句16:
SELECT *
FROM ORDERS O NATURAL RIGHT OUTER JOIN CUSTOMERS C;
語句17:
SELECT *
FROM ORDERS O NATURAL FULL OUTER JOIN CUSTOMERS C;
六、SQL查詢的基本原理:兩種情況介紹 。
第一、單表查詢:根據(jù)WHERE條件過濾表中的記錄,形成中間表(這個中間表對用戶是不可見的);然后根據(jù)SELECT的選擇列選擇相應的列進行返回最終結果 。
第二、兩表連接查詢:對兩表求積(笛卡爾積)并用ON條件和連接連接類型進行過濾形成中間表;然后根據(jù)WHERE條件過濾中間表的記錄,并根據(jù)SELECT指定的列返回查詢結果 。
第三、多表連接查詢:先對第一個和第二個表按照兩表連接做查詢,然后用查詢結果和第三個表做連接查詢,以此類推,直到所有的表都連接上為止,最終形成一個中間的結果表,然后根據(jù)WHERE條件過濾中間表的記錄,并根據(jù)SELECT指定的列返回查詢結果 。
理解SQL查詢的過程是進行SQL優(yōu)化的理論依據(jù) 。
七、ON后面的條件(ON條件)和WHERE條件的區(qū)別:
ON條件:是過濾兩個鏈接表笛卡爾積形成中間表的約束條件 。
WHERE條件:在有ON條件的SELECT語句中是過濾中間表的約束條件 。在沒有ON的單表查詢中,是限制物理表或者中間查詢結果返回記錄的約束 。在兩表或多表連接中是限制連接形成最終中間表的返回結果的約束 。
從這里可以看出,將WHERE條件移入ON后面是不恰當?shù)?。推薦的做法是:
ON只進行連接操作,WHERE只過濾中間表的記錄 。
八、總結
連接查詢是SQL查詢的核心,連接查詢的連接類型選擇依據(jù)實際需求 。如果選擇不當,非但不能提高查詢效率,反而會帶來一些邏輯錯誤或者性能低下 。下面總結一下兩表連接查詢選擇方式的依據(jù):
1、 查兩表關聯(lián)列相等的數(shù)據(jù)用內(nèi)連接 。
2、 Col_L是Col_R的子集時用右外連接 。
3、 Col_R是Col_L的子集時用左外連接 。
4、 Col_R和Col_L彼此有交集但彼此互不為子集時候用全外 。
5、 求差操作的時候用聯(lián)合查詢 。
多個表查詢的時候,這些不同的連接類型可以寫到一塊 。例如:


以上關于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關的問題,請您及時就醫(yī)或請專業(yè)人士給予相關指導!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: