SQLite經典教學課程登入
SQLite經典教學課程
作者:php.cn  更新時間:2022-04-13 17:05:02

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 的<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
     
separator: "|"
    width:
sqlite>

確保sqlite> 提示符號與點指令之間沒有空格,否則將無法正常運作。
格式化輸出

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

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

上面設定會產生以下格式的輸出:

ID      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,
 .
##