第四章 高級查詢(二) (1)通過在子查詢中使用EXISTS子句,可以對子查詢中的行是否存在進行檢查。子查詢可以出現在表達式出現的如何位置 (2)子查詢語句可以嵌套在SQL語句中任何表達式出現的位置。 一、EXISTS子查詢 1.使用EXISTS語句判斷該資料庫對象是否存在: DROP TABLE ...
第四章 高級查詢(二)
(1)通過在子查詢中使用EXISTS子句,可以對子查詢中的行是否存在進行檢查。子查詢可以出現在表達式出現的如何位置
(2)子查詢語句可以嵌套在SQL語句中任何表達式出現的位置。
一、EXISTS子查詢
1.使用EXISTS語句判斷該資料庫對象是否存在:
DROP TABLE IF EXISTS temp;
2. EXISTS作為WHERE語句的子查詢:
SELECT .....FROM 表名 WHERE EXISTS(子查詢);
3. EXISTS關鍵字後面的參數是一個任意的子查詢,如果該子查詢有返回行。則EXISTS子查詢的結果為true,此時再執行外層查詢語句。如果子查詢有沒返回行。則EXISTS子查詢的結果為false,此時不再執行外層查詢語句。
二、NOT EXISTS子查詢
EXISTS和IN一樣,同樣允許添加NOT關鍵字實現取返操作,NOT EXISTS表示不存在。
三、子查詢註意事項
1)子查詢可以嵌套在SQL語句中任何表達式出現的位置
在SELECTE語句中,子查詢可以被嵌套在SELECT語句的列、表和查詢條件中,即SELECT子句、FROM子句、WHERE子句、GROUP BY子句和HAVING子句。
2)只出現在子查詢中而沒有出現在父查詢中的的表不能包含在輸出列中
多層嵌套子查詢的最終數據集只包含父查詢的SELECT子句中出現的欄位,而子查詢的輸出結果通常會作為其外層子查詢數據源或用於數據判斷匹配