3、SQLite學習筆記--SQLite的命令與語法
一、.help 查看命令使用提示
1、提示如下
2、提示詳解
命令 | 描述 |
---|---|
.backup ?DB? FILE | 備份 DB 數據庫(默認是 "main")到 FILE 文件。 |
.bail ON|OFF | 發生錯誤后停止。默認為 OFF。 |
.databases | 列出數據庫的名稱及其所依附的文件。 |
.dump ?TABLE? | 以 SQL 文本格式轉儲數據庫。如果指定了 TABLE 表,則只轉儲匹配 LIKE 模式的 TABLE 表。 |
.echo ON|OFF | 開啟或關閉 echo 命令。 |
.exit | 退出 SQLite 提示符。 |
.explain ON|OFF | 開啟或關閉適合于 EXPLAIN 的輸出模式。如果沒有帶參數,則為 EXPLAIN on,及開啟 EXPLAIN。 |
.header(s) ON|OFF | 開啟或關閉頭部顯示。 |
.help | 顯示消息。 |
.import FILE TABLE | 導入來自 FILE 文件的數據到 TABLE 表中。 |
.indices ?TABLE? | 顯示所有索引的名稱。如果指定了 TABLE 表,則只顯示匹配 LIKE 模式的 TABLE 表的索引。 |
.load FILE ?ENTRY? | 加載一個擴展庫。 |
.log FILE|off | 開啟或關閉日志。FILE 文件可以是 stderr(標準錯誤)/stdout(標準輸出)。 |
.mode MODE | 設置輸出模式,MODE 可以是下列之一:
|
.nullvalue STRING | 在 NULL 值的地方輸出 STRING 字符串。 |
.output FILENAME | 發送輸出到 FILENAME 文件。 |
.output stdout | 發送輸出到屏幕。 |
.print STRING... | 逐字地輸出 STRING 字符串。 |
.prompt MAIN CONTINUE | 替換標準提示符。 |
.quit | 退出 SQLite 提示符。 |
.read FILENAME | 執行 FILENAME 文件中的 SQL。 |
.schema ?TABLE? | 顯示 CREATE 語句。如果指定了 TABLE 表,則只顯示匹配 LIKE 模式的 TABLE 表。 |
.separator STRING | 改變輸出模式和 .import 所使用的分隔符。 |
.show | 顯示各種設置的當前值。 |
.stats ON|OFF | 開啟或關閉統計。 |
.tables ?PATTERN? | 列出匹配 LIKE 模式的表的名稱。 |
.timeout MS | 嘗試打開鎖定的表 MS 毫秒。 |
.width NUM NUM | 為 "column" 模式設置列寬度。 |
.timer ON|OFF | 開啟或關閉 CPU 定時器。 |
3、.show 命令,來查看 SQLite 命令提示符默認的設置
4、格式化輸出
(1)使用下面的點命令來配置格式化輸出
//
sqlite>.header on
sqlite>.mode column
sqlite>.timer on
sqlite>
//
(2)上面的配置對應的格式化輸出如下
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0 CPU Time: user 0.000000 sys 0.000000
5、sqlite_master 表格
(1)主表中保存數據庫表的關鍵信息,并把它命名為 sqlite_master。如要查看表概要,可按如下操作:
//
sqlite>.schema sqlite_master
//
(2)上面命令運行后結果如下
CREATE TABLE sqlite_master ( type text, name text, tbl_name text, rootpage integer, sql text );
二、SQLite 語法
1、注意事項
(1)關鍵字和標識符:此處來自《SQLite權威指南》[第2版],作者Grant Allen
A、關鍵字是SQL中有指定含義的單詞,這些單詞包括select、update、insert、create、drop、begin等。
B、標識符是指數據庫里的具體對象,如表或索引。關鍵字是保留的單詞,不能用作標識符。SQL不區分關鍵字和標識符的大小寫,例如,下面是相同的語句:
//
SELECT * from foo;
SeLeCt * FrOm FOO;
//
C、SQLite中默認的字符常量值是大小寫敏感的。因此,‘Mike’與‘mike’是不同的。(2)所有的 SQLite 語句可以以任何關鍵字開始,如 SELECT、INSERT、UPDATE、DELETE、ALTER、DROP 等,所有的語句以分號(;)結束。
2、各語句介紹
(1)SQLite ANALYZE 語句:
ANALYZE; or ANALYZE database_name; or ANALYZE database_name.table_name;
(2)SQLite AND/OR 子句:
SELECT column1, column2....columnN FROM table_name WHERE CONDITION-1 {AND|OR} CONDITION-2;
(3)SQLite ALTER TABLE 語句:
ALTER TABLE table_name ADD COLUMN column_def...;
(4)SQLite ALTER TABLE 語句(Rename):
ALTER TABLE table_name RENAME TO new_table_name;
(5)SQLite ATTACH DATABASE 語句:
ATTACH DATABASE 'DatabaseName' As 'Alias-Name';
(6)SQLite BEGIN TRANSACTION 語句:
BEGIN; or BEGIN EXCLUSIVE TRANSACTION;
(7)SQLite BETWEEN 子句:
SELECT column1, column2....columnN FROM table_name WHERE column_name BETWEEN val-1 AND val-2;
(8)SQLite COMMIT 語句:
COMMIT;
(9)SQLite CREATE INDEX 語句:
CREATE INDEX index_name ON table_name ( column_name COLLATE NOCASE );
(10)SQLite CREATE UNIQUE INDEX 語句:
CREATE UNIQUE INDEX index_name ON table_name ( column1, column2,...columnN);
(11)SQLite CREATE TABLE 語句:
CREATE TABLE table_name( column1 datatype, column2 datatype, column3 datatype, ..... columnN datatype, PRIMARY KEY( one or more columns ) );
(12)SQLite CREATE TRIGGER 語句:
CREATE TRIGGER database_name.trigger_name BEFORE INSERT ON table_name FOR EACH ROW BEGIN stmt1; stmt2; .... END;
(13)SQLite CREATE VIEW 語句:
CREATE VIEW database_name.view_name AS SELECT statement....;
(14)SQLite CREATE VIRTUAL TABLE 語句:
CREATE VIRTUAL TABLE database_name.table_name USING weblog( access.log ); or CREATE VIRTUAL TABLE database_name.table_name USING fts3( );
(15)SQLite COMMIT TRANSACTION 語句:
COMMIT;
(16)SQLite COUNT 子句:
SELECT COUNT(column_name) FROM table_name WHERE CONDITION;
(17)SQLite DELETE 語句:
DELETE FROM table_name WHERE {CONDITION};
(18)SQLite DETACH DATABASE 語句:
DETACH DATABASE 'Alias-Name';
(19)SQLite DISTINCT 子句:
SELECT DISTINCT column1, column2....columnN FROM table_name;
(20)SQLite DROP INDEX 語句:
DROP INDEX database_name.index_name;
(21)SQLite DROP TABLE 語句:
DROP TABLE database_name.table_name;
(22)SQLite DROP VIEW 語句:
DROP VIEW view_name;
(23)SQLite DROP TRIGGER 語句:
DROP TRIGGER trigger_name
(24)SQLite EXISTS 子句:
SELECT column1, column2....columnN FROM table_name WHERE column_name EXISTS (SELECT * FROM table_name );
(25)SQLite EXPLAIN 語句:
EXPLAIN INSERT statement...; or EXPLAIN QUERY PLAN SELECT statement...;
(26)SQLite GLOB 子句:
SELECT column1, column2....columnN FROM table_name WHERE column_name GLOB { PATTERN };
(27)SQLite GROUP BY 子句:
SELECT SUM(column_name) FROM table_name WHERE CONDITION GROUP BY column_name;
(28)SQLite HAVING 子句:
SELECT SUM(column_name) FROM table_name WHERE CONDITION GROUP BY column_name HAVING (arithematic function condition);
(29)SQLite INSERT INTO 語句:
INSERT INTO table_name( column1, column2....columnN) VALUES ( value1, value2....valueN);
(30)SQLite IN 子句:
SELECT column1, column2....columnN FROM table_name WHERE column_name IN (val-1, val-2,...val-N);
(31)SQLite Like 子句:
SELECT column1, column2....columnN FROM table_name WHERE column_name LIKE { PATTERN };
(32)SQLite NOT IN 子句:
SELECT column1, column2....columnN FROM table_name WHERE column_name NOT IN (val-1, val-2,...val-N);
(33)SQLite ORDER BY 子句:
SELECT column1, column2....columnN FROM table_name WHERE CONDITION ORDER BY column_name {ASC|DESC};
(34)SQLite PRAGMA 語句:
PRAGMA pragma_name; For example: PRAGMA page_size; PRAGMA cache_size = 1024; PRAGMA table_info(table_name);
(35)SQLite RELEASE SAVEPOINT 語句:
RELEASE savepoint_name;
(36)SQLite REINDEX 語句:
REINDEX collation_name; REINDEX database_name.index_name; REINDEX database_name.table_name;
(37)SQLite ROLLBACK 語句:
ROLLBACK; or ROLLBACK TO SAVEPOINT savepoint_name;
(38)SQLite SAVEPOINT 語句:
SAVEPOINT savepoint_name;
(39)SQLite SELECT 語句:
SELECT column1, column2....columnN FROM table_name;
(40)SQLite UPDATE 語句:
UPDATE table_name SET column1 = value1, column2 = value2....columnN=valueN [ WHERE CONDITION ];
(41)SQLite VACUUM 語句:
VACUUM;
(42)SQLite WHERE 子句:
SELECT column1, column2....columnN FROM table_name WHERE CONDITION;
致謝
2、SQLite官網
智能推薦
SQLite學習
創建數據庫 添加數據 修改數據 刪除數據 查詢數據 創建一個名為BookStore.db的數據庫 adb shell環境配置 adb shell命令操作 升級數據庫 添加數據 更新數據 刪除數據 查詢數據...
SQLite3源碼學習(19) printf的實現
在SQLite中并沒有使用標準庫的printf()函數,而是自己實現了printf的全部功能并針對不同的應用做了一層封裝。所有相關代碼在printf.c里,下面就來分析SQLite是如何實現自己的printf。 1.可變參數 可變參數是實現printf的基礎,其聲明格式如下: printf(const char *zForm...
Sqlite3源碼學習(5)OS的接口VFS
之前講了那么多的環境搭建,現在終于可以學習源碼了。官方有一篇講解VFS的文檔,對理解sqlite3的VFS有很大的幫助: http://www.sqlite.org/vfs.html 1.VFS簡介 VFS也就是所謂的虛擬文件系統,因為sqlite3運行在不同的平臺上會有不同的文件系統,V...
SQLite的基礎學習(二)
這篇博客主要介紹如何用JAVA語言連接到SQLite數據庫并打開數據庫 用JAVA操作SQLite要導入Sqlite jdbc驅動包,是一種用于執行SQL語句的JAVA API。 1.用SQLite Expert Professional創建數據表 第一步:打開軟件后點擊File–>New Database 或者Open Database,打開數據庫; 第二步:右鍵單擊選中的數據...
SQLite
SQLite可視化工具sqlitebrowser,下載地址 http://sqlitebrowser.org/ Ubuntu/deepin安裝方式 打開數據庫文件 How to install sqlite3 查看版本 創建一個名為test.db 的數據庫 進入sqlite后 創建一個表 向mytable插入數據 查詢數據表 設置為列顯示模式 退出數據庫 重新進入test.db數據庫 查看數據庫信...
猜你喜歡
SQLite
相關參考鏈接為:http://blog.csdn.net/qq_28234213/article/details/72784331 http://www.cnblogs.com/Luoma_HaoWei/archive/2013/08/23/3278154.html 一、Ctrl+Z之后,在按回車,可以退出命令行界面。 二、 sqlite進入 ...> 狀態退出的方法: 此時是進入...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...