摘要:1.子查詢的概念:子查詢就是嵌套在主查詢中的查詢。子查詢可以嵌套在主查詢中所有位置,包括SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY。2.子查詢的分類:2.1按照相關性分類1)相關子查詢 執(zhí)行依賴于外部查詢的數據?! ⊥獠坎樵兎祷匾恍校硬樵兙蛨?zhí)行一次。2)非相關子查詢 獨立于外部查詢的子查詢?! ∽硬樵兛偣矆?zhí)行一次,執(zhí)行完畢后后將值傳遞給外部查詢。需要
1.子查詢的概念:
子查詢就是嵌套在主查詢中的查詢。
子查詢可以嵌套在主查詢中所有位置,包括SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY。
2.子查詢的分類:
2.1按照相關性分類
1)相關子查詢
執(zhí)行依賴于外部查詢的數據。
外部查詢返回一行,子查詢就執(zhí)行一次。
2)非相關子查詢
獨立于外部查詢的子查詢。
子查詢總共執(zhí)行一次,執(zhí)行完畢后后將值傳遞給外部查詢。
需要注意的是相關子查詢主查詢執(zhí)行一回,子查詢就執(zhí)行一回,十分耗費時間,尤其是當數據多的時候。
2.2按照返回的結果集分類
1)單值子查詢
只有返回且僅返回一行、一列數據的子查詢才能當成單值子查詢。當子查詢跟隨在=、!=、<、<=、>、>=,<> 之后,或子查詢用作表達式,只能使用單值子查詢。
2) 多值子查詢
如果子查詢是多行單列的子查詢,這樣的子查詢的結果集其實是一個集合,那么可以使用in關鍵字代替=號