共計(jì) 1539 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。
這篇文章將為大家詳細(xì)講解有關(guān) SQLite 中 SELECT 基本形式是什么,丸趣 TV 小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
SQLite 中 SELECT 基本形式
每個(gè)數(shù)據(jù)庫(kù)通常都包含多個(gè)表,而每個(gè)表又包含多條數(shù)據(jù)。要獲取數(shù)據(jù)庫(kù)中的數(shù)據(jù),就需要 SQL 語(yǔ)言提供的查詢語(yǔ)句 SELECT。本章將講解和 SELECT 語(yǔ)句相關(guān)的內(nèi)容,其中包括 SELECT 基本形式、表達(dá)式、連接、分組、排序和去重、獲取子集、子查詢以及聯(lián)合查詢等。
3.1 SELECT 基本形式
本節(jié)將講解 SELECT 語(yǔ)句的基本形式,其中包括基本完整形式、SELECT 子句、FROM 子句以及 WHERE 子句等
3.1.1 基本形式
以下是 SELECT 語(yǔ)法的基本完整形式:
SELECT [DISTINCT] select_heading
FROM source_tables
WHERE filter_expression
GROUP BY grouping_expressions
HAVING filter_expression
ORDER BY ordering_expressions
LIMIT count
OFFSET count
其中,參數(shù)說(shuō)明如下:
? select_heading:用來(lái)定義最終結(jié)果表的格式和內(nèi)容,主要是用來(lái)定義表的頭。
注意:在 SQL 中的數(shù)據(jù)結(jié)構(gòu)就是表,表用于存儲(chǔ)數(shù)據(jù)和數(shù)據(jù)處理。表是由一個(gè)頭和體組成。頭定義了每列的名稱和類型(以 SQLite 為單位)。列名稱在表格中必須是唯一的。頭定義了列的順序,這些列作為表定義的一部分被修復(fù)。體包含了所有行。每一行由每列的一個(gè)數(shù)據(jù)元素組成。表中的每一列的所有行必須具有相同數(shù)量的數(shù)據(jù)元素,每個(gè)元素可以容納一個(gè)數(shù)據(jù)值(或一個(gè) NULL)。
FROM source_tables:指定一個(gè)或多個(gè)源表,并將它們組合成一個(gè)大的工作表。
WHERE filter_expression:對(duì)工作表中的特定行過(guò)濾。
GROUP BY grouping_expressions:用來(lái)指定分組。
HAVING filter_expression:過(guò)濾分組表中的特定行。
ORDER BY ordering_expressions:對(duì)結(jié)果集的行進(jìn)行排序。
LIMIT count:將結(jié)果集輸出限制為特定數(shù)量的行。
OFFSET count:跳過(guò)結(jié)果集開(kāi)頭的行。
注意:DISTINCT 是可選的,用來(lái)消除重復(fù)的行。除了 DISTINCT 外,在 SELECT 語(yǔ)句中,附加子句(FROM、WHERE、GROUP BY 等)都是可選的。
SELECT 語(yǔ)句中的子句并不是按照它們寫(xiě)入的順序進(jìn)行執(zhí)行的。其執(zhí)行流程如圖 3.1 所示。
圖 3.1 執(zhí)行流程
注意:在圖 3.1 中 R 后面的數(shù)字可以認(rèn)為是執(zhí)行順序。
(1)查詢語(yǔ)句需要一個(gè)或者兩個(gè)源表。
(2)通過(guò) FROM 子句,獲取一個(gè) R1 表。
(3)WHERE 子句對(duì) R1 表中的行進(jìn)行過(guò)濾,然后生成一個(gè)新的表 R2。
(4)R2 表通過(guò) GROUP BY 子句然后進(jìn)行分組,將 R2 表分組了對(duì)應(yīng)的組,此時(shí)會(huì)出生成 R3 表。
(5)R3 表再通過(guò) HAVING 子句過(guò)濾表中特定行,生成 R4 表。
(6)R4 表再通過(guò) SELECT 子句執(zhí)行要顯示的最終結(jié)果表的格式和內(nèi)容,此時(shí)會(huì)生成 R5 表。
(7)R5 表再使用 DISTINCT 關(guān)鍵字進(jìn)行去重,此時(shí)會(huì)生成 R6 表。
(8)R6 會(huì)通過(guò) ORDER BY 子句進(jìn)行排序,此時(shí)會(huì)生成 R7 表。
(9)R7 表通過(guò) OFFSET 子句跳過(guò)表的開(kāi)頭的行,生成一個(gè)新的表 R8 表。
(10)R8 表通過(guò) LIMIT 子句限制為特定數(shù)量的行,此時(shí)會(huì)出顯示出最終的結(jié)果表 Result。
關(guān)于“SQLite 中 SELECT 基本形式是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。