SQLite中SELECT基本形式

SQLite中SELECT基本形式數據庫

每一個數據庫一般都包含多個表,而每一個表又包含多條數據。要獲取數據庫中的數據,就須要SQL語言提供的查詢語句SELECT。本章將講解和SELECT語句相關的內容,其中包括SELECT基本形式、表達式、鏈接、分組、排序和去重、獲取子集、子查詢以及聯合查詢等。express

3.1  SELECT基本形式數據結構

本節將講解SELECT語句的基本形式,其中包括基本完整形式、SELECT子句、FROM子句以及WHERE子句等排序

3.1.1  基本形式it

如下是SELECT語法的基本完整形式:io

SELECT [DISTINCT] select_headingtable

FROM source_tablesselect

WHERE filter_expression語法

GROUP BY grouping_expressionsim

HAVING filter_expression

ORDER BY ordering_expressions

LIMIT count

OFFSET count

其中,參數說明以下:

 select_heading:用來定義最終結果表的格式和內容,主要是用來定義表的頭。

注意:在SQL中的數據結構就是表,表用於存儲數據和數據處理。表是由一個頭和體組成。頭定義了每列的名稱和類型(以SQLite爲單位)。列名稱在表格中必須是惟一的。頭定義了列的順序,這些列做爲表定義的一部分被修復。體包含了全部行。每一行由每列的一個數據元素組成。表中的每一列的全部行必須具備相同數量的數據元素,每一個元素能夠容納一個數據值(或一個NULL)。

  • FROM source_tables:指定一個或多個源表,並將它們組合成一個大的工做表。
  • WHERE filter_expression:對工做表中的特定行過濾。
  • GROUP BY grouping_expressions:用來指定分組。
  • HAVING filter_expression:過濾分組表中的特定行。
  • ORDER BY ordering_expressions:對結果集的行進行排序。
  • LIMIT count:將結果集輸出限制爲特定數量的行。
  • OFFSET count:跳過結果集開頭的行。

注意:DISTINCT是可選的,用來消除重複的行。除了DISTINCT外,在SELECT語句中,附加子句(FROM、WHERE、GROUP BY等)都是可選的。

SELECT語句中的子句並非按照它們寫入的順序進行執行的。其執行流程如圖3.1所示。

圖3.1  執行流程

注意:在圖3.1中R後面的數字能夠認爲是執行順序。

(1)查詢語句須要一個或者兩個源表。

(2)經過FROM子句,獲取一個R1表。

(3)WHERE子句對R1表中的行進行過濾,而後生成一個新的表R2。

(4)R2表經過GROUP BY子句而後進行分組,將R2表分組了對應的組,此時會出生成R3表。

(5)R3表再經過HAVING子句過濾表中特定行,生成R4表。

(6)R4表再經過SELECT子句執行要顯示的最終結果表的格式和內容,此時會生成R5表。

(7)R5表再使用DISTINCT關鍵字進行去重,此時會生成R6表。

(8)R6會經過ORDER BY子句進行排序,此時會生成R7表。

(9)R7表經過OFFSET子句跳過表的開頭的行,生成一個新的表R8表。

(10)R8表經過LIMIT子句限制爲特定數量的行,此時會出顯示出最終的結果表Result。

相關文章
相關標籤/搜索