SQLite 指令
本章將向您講解 SQLite 程式設計人員所使用的簡單卻有用的指令。這些命令被稱為 SQLite 的點命令,這些命令的不同之處在於它們不以分號(;)結束。
讓我們在命令提示字元中鍵入一個簡單的 sqlite3 命令,在 SQLite 命令提示字元下,您可以使用各種 SQLite 命令。
$sqlite3
SQLite version 3.3.6
Enter ".help" for instructions
sqlite>
SQLite version 3.3.6
Enter ".help" for instructions
sqlite>
#如需取得可用的點指令的清單,可以在任何時候輸入".help"。例如:
sqlite>.help
上面的指令會顯示各種重要的SQLite 點指令的列表,如下所示:
#描述 | |
---|---|
#.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 計時器測量。 |
讓我們嘗試使用 .show 指令,來查看 SQLite 指令提示字元的預設設定。
sqlite>.show
echo: off
explain: off
headers: off
separator: "|"
width:
sqlite>
確保sqlite> 提示符號與點指令之間沒有空格,否則將無法正常運作。 echo: off
explain: off
headers: off
separator: "|"
width:
sqlite>
格式化輸出
您可以使用下列的點指令來格式化輸出為本教學下列所列的格式:
sqlite>.header onsqlite>.mode column
ID AGE ADDRESS SALARYsqlite>.timer on
sqlite>
上面設定會產生以下格式的輸出:sqlite>
---------- ---------- ---------- ---------- ---- ------
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
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
sqlite_master 表格
主表中保存資料庫表的關鍵訊息,並把它命名為 sqlite_master。如要查看表格摘要,可如下操作:
sqlite>.schema sqlite_master
這將產生下列結果:
#CREATE TABLE sqlite_master (
type text,
name text,
tbl_name text,
rootpage integer,
.
##type text,
name text,
tbl_name text,
rootpage integer,
.