SQLite 命令

SQLite 命令

本章將向您講解 SQLite 程式設計人員所使用的簡單卻有用的命令。這些命令被稱為 SQLite 的點命令,這些命令的不同之處在於它們不以分號 ; 結束。

讓我們在命令提示符下鍵入一個簡單的 sqlite3 命令,在 SQLite 命令提示符下,您可以使用各種 SQLite 命令。

$ sqlite3
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 可以是下列之一:
  • csv 逗號分隔的值

  • column 左對齊的列

  • html HTML 的 <table> 程式碼

  • insert TABLE 表的 SQL 插入(insert)語句

  • line 每行一個值

  • list 由 .separator 字串分隔的值

  • tabs 由 Tab 分隔的值

  • tcl TCL 列表元素

.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
     mode: column
nullvalue: ""
   output: stdout
separator: "|"
    width:
sqlite>
確保 sqlite> 提示符與點命令之間沒有空格,否則將無法正常工作。

格式化輸出

您可以使用下列的點命令來格式化輸出為本教程下面所列出的格式:

sqlite>.header on
sqlite>.mode column
sqlite>.timer on
sqlite>

上面設定將產生如下格式的輸出:

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

sqlite_master 表格

主表中儲存資料庫表的關鍵資訊,並把它命名為 sqlite_master。如要查看錶概要,可按如下操作:

sqlite>.schema sqlite_master

這將產生如下結果:

CREATE TABLE sqlite_master (
  type text,
  name text,
  tbl_name text,
  rootpage integer,
  sql text
);