2017-09-16 68 views
0

如果我在答案中使用子查詢或嵌套查詢,它仍然是單個SQL查詢嗎?什麼是單個SQL查詢?

+1

是的,它是一個單一的MySQL查詢。 –

+1

@GiorgosBetsos:這也是一個單一的Postgres查詢。或者一個Oracle查詢。或者一個DB2查詢。 –

回答

0

是的,因爲雖然內部會執行許多查詢,但查詢會帶出一個結果集。

0

我不認爲術語「查詢」在SQL中定義良好。通俗地說,它通常是指執行以返回結果集的SELECT語句。通過這個定義,子查詢是單個查詢的一部分。這往往是我會用的。

當使用基於集合的操作,有時人們參考以下兩個查詢:

select a.* from a 
union all 
select b.* from b; 

在我看來,那是與所述術語有點馬虎。但我得到這個問題:這個「查詢」有兩個「選擇語句」。

如果您考慮交易,它會變得更加複雜。如果您在單個事務中運行多個查詢,那麼它是一個「查詢」還是更多?考慮:

begin transaction; 
    update a set x = 1 where . . . ; 
    update a set x = 2 where . . . ; 
commit transaction; 

這裏真的很讓人困惑。該交易有兩個update報表,但這些報表只有在commit成功後纔會生效。