子查詢辨析

2021-07-28 11:14:35 字數 962 閱讀 4430

一好友夜讀《資料庫查詢優化器的藝術》,至19頁,看到原文如下:

列子查詢。子查詢返回的結果集型別是一條單一元組(return a single row)。

行子查詢。子查詢返回的結果集型別是乙個單一列(return a single column)。

問我,是否這兩個概念反了?  心有感念,謝謝提醒,所以特連夜寫此短文,以慰好友之善意,不枉真情一片。

說明:從結果集的角度看,書中還寫了:標量子查詢/錶子查詢,加上上面2種,共4種。

特別感謝好友反覆提醒,辨析至此。此時代,能直言者,善莫大焉,不易。致謝玉輝!

辨析:1 首先,概念是從結果集的特徵角度去說的。

2 其次,如果從面向的物件角度去看,這麼分其實不適用。更為適宜(指在sql中可以出現的方式)的提法,應該是:

從結果集的角度看,子查詢分為四類:

標量子查詢。子查詢返回的結果集型別是乙個簡單值(

return a scalar

,a single value

)。單行單列子查詢。子查詢返回的結果集型別是零條或一條單元組(

return a zero or single row,but only a column

)。相似於標量子查詢,但可能返回零條元組。

多行單列子查詢。子查詢返回的結果集型別是多條元組但只有乙個簡單列(

return multiple rows,but only a column

)。錶子查詢。子查詢返回的結果集型別是乙個表(多行多列)(

returna table

,one or more rows of one or more columns

)。

3 如此辨析,原文確實不對。

4 實踐中,多用的概念是「標量子查詢」,「標量子查詢」經常被優化,如min/max的優化。其他的則不作為特殊情況特別處理,是否優化需要看具體情況。

mysql from 子查詢 mysql 子查詢

簡單的解釋下幾個資料庫概念以幫助理解子查詢的內容 1 什麼是建標 答 就是宣告列的過程。2 什麼是列答 列可以理解為變數,可以運算3 什麼是取出結果 答 可以理解為零時表 接下來建立2個表,email表和person表,例子的原型是乙個人可以有多個郵箱,而乙個郵箱只能屬於乙個人,一對多的資料關係,其...

mysql求和 子查詢 MySQL子查詢

到現在為止,我們已經表明,以select宣告是乙個簡單的查詢。該單個語句從單個資料庫表中檢索資料。sql還同意建立乙個子查詢。即巢狀在其他查詢的查詢。下列實施例給出巢狀查詢。一種表示訂單資訊儲存,包含訂單號,客戶id。訂購日期。例如以下所看到的 一張表示儲存訂單物品資訊,例如以下 另一張表儲存的是客...

mysql sql 子查詢語句 SQL子查詢

子查詢或內部查詢或巢狀查詢在另乙個sql查詢的查詢和嵌入式where子句中。子查詢用於返回將被用於在主查詢作為條件的資料,以進一步限制要檢索的資料。子查詢可以在select,insert,update使用,而且隨著運算子如delete語句 in,between 等.這裡有一些規則,子查詢必須遵循 子...