【数据库】适用于SQLite的SQL语句(三)
生活随笔
收集整理的這篇文章主要介紹了
【数据库】适用于SQLite的SQL语句(三)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 十七、重新引索REINDEX
- 十八、查詢SELECT
- 1、簡單查詢
- 2、復合查詢
- 十九、更新UPDATE
- 二十、公用表表達式(CTE)WITH
- 1、普通表達式
- 2、遞歸表達式
- 二十三、VACUUM
- 二十四、UPSERT
十七、重新引索REINDEX
REINDEX命令用于從頭開始刪除和重新創建索引。
十八、查詢SELECT
1、簡單查詢
關鍵詞:
FROM :數據源,后加表名或子查詢
WHERE:過濾
GROUP BY:聚合查詢,根據一個或多個列對結果集進行分組(合并行)
HAVING:過濾,和WHERE類似,WHERE不能和合計函數一起使用,HAVING可以
DISTINCT:去重
2、復合查詢
在復合SELECT中,所有組成的SELECT必須返回相同數量的結果列。由于復合SELECT的組件必須是簡單的SELECT語句,因此它們可能不包含ORDER BY或LIMIT子句。 ORDER BY和LIMIT子句只能在整個復合SELECT的末尾出現,然后僅在該復合詞的最后一個元素不是VALUES子句時才出現。
關鍵詞:
UNION :UNION 操作符用于合并兩個或多個 SELECT 語句的結果集。
UNION ALL:和UNION類似,不同點是UNION返回的結果不包括重復值。
INTERSECT:返回兩個SELECT結果的交集。
EXCEPT:返回第一個SELECT的結果,并剔除出現在第二個SELECT中的結果。注意:MySQL中沒有EXCEPT
UNION用法,其它方法類似
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
十九、更新UPDATE
如果UPDATE語句沒有WHERE子句,則UPDATE修改表中的所有行。否則,UPDATE僅影響那些WHERE子句 布爾表達式為true的行。如果表中的任何行的WHERE子句都不為true,這不是錯誤-這僅意味著UPDATE語句影響零行。
二十、公用表表達式(CTE)WITH
1、普通表達式
格式:
WITH
name AS(SQL語句
)
2、遞歸表達式
格式:
WITH RECURSIVE
name AS(SQL語句
)
示例:使用SQL語句打印1到100
WITH RECURSIVEcnt(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<100)
SELECT x FROM cnt;
二十三、VACUUM
VACUUM命令用于重建數據庫文件,將其重新打包到最小的磁盤空間中。
VACUUM INTO 可以備份數據庫。參見【數據庫】sqlite3數據庫備份、導出方法匯總
二十四、UPSERT
UPSERT是INSERT特殊語法補充,它不是標準的SQL。和關鍵詞"ON CONFLICT" 和 "DO"一起使用,來解決唯一性沖突。
總結
以上是生活随笔為你收集整理的【数据库】适用于SQLite的SQL语句(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据库】适用于SQLite的SQL语句
- 下一篇: 【C++】C++11 STL算法(九):