SQLite中SELECT基本形式
SQLite中SELECT基本形式
每個資料庫通常都包含多個表,而每個表又包含多條資料。要獲取資料庫中的資料,就需要SQL語言提供的查詢語句SELECT。本章將講解和SELECT語句相關的內容,其中包括SELECT基本形式、表示式、連線、分組、排序和去重、獲取子集、子查詢以及聯合查詢等。
3.1 SELECT基本形式
本節將講解SELECT語句的基本形式,其中包括基本完整形式、SELECT子句、FROM子句以及WHERE子句等
3.1.1 基本形式
以下是SELECT語法的基本完整形式:
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
其中,引數說明如下:
? 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。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-2152662/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQLite中的SELECT子句SQLite
- SQLite中的SELECT子句使用表示式SQLite
- SQLite中的SELECT子句使用別名SQLite
- SQLite中的SELECT子句使用萬用字元SQLite字元
- SQLite語句(二):INSERT DELETE UPDATE SELECTSQLitedelete
- Android中SQLiteAndroidSQLite
- SQLite中的表示式SQLite
- SQLite中的WHERE子句SQLite
- SQLite中的FROM子句SQLite
- MySql 中 select 使用MySql
- vue中select的使用以及select設定預設選中Vue
- DataTable中的select()用法
- QT5中如何使用SQLiteQTSQLite
- SQL Server中的SELECT會阻塞SELECT相關資料SQLServer
- Linux中select()函式分析Linux函式
- SQLite中的運算子表示式SQLite
- Docker中SQlite的配置和掛載DockerSQLite
- sqlite 視覺化工具SQLite studioSQLite視覺化
- 淺談Golang中select的用法Golang
- select 下拉框選中事件事件
- golang當中對select的理解Golang
- AngularJS select中ngOptions用法詳解AngularJSGo
- 解析MySQL中INSERT INTO SELECT的使用MySql
- go 中 select 原始碼閱讀Go原始碼
- select 下拉框用 Select select = new Select (element) 方法失敗
- android:SQliteAndroidSQLite
- sqlite更新SQLite
- python sqlitePythonSQLite
- Sqlite學習筆記之Sqlite歷史SQLite筆記
- jquery操作select(取值,設定選中)jQuery
- SQL-Hive中的Select From解析SQLHive
- vue中select繫結多個值Vue
- sqlite中存放自定義表結構的位置SQLite
- SQLite資料庫管理器:SQLPro for SQLite for MacSQLite資料庫Mac
- sqlite 學習SQLite
- SQLite學習SQLite
- SQLite簡介SQLite
- sqlite封裝SQLite封裝