一好友夜讀《資料庫查詢優化器的藝術》,至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 等.這裡有一些規則,子查詢必須遵循 子...