跳轉到內容

SQLite/Release3

來自華夏公益教科書,開放書籍,面向開放世界

在閱讀本內容之前,您應該已下載並解壓到您的PATH中最新版本的可執行命令列介面sqlite3,以適合您的作業系統。

CommandLine

[編輯 | 編輯原始碼]

用法:sqlite3 [OPTIONS] FILENAME [SQL]

  • FILENAME 是一個 SQLite 資料庫的名稱。如果檔案不存在,則會建立一個新資料庫。
  • SQL 是一個點-SQL-命令Pragma。OPTIONS 包括
  -A ARGS...           = .archive ARGS and exit
  -append              append database to end of file
  -ascii               = .mode ascii
  -bail                = .bail on
  -batch               force batch I/O
  -box                 = .mode box
  -column              = .mode column
  -cmd COMMAND         run "COMMAND" before reading stdin
  -csv                 = .mode csv
  -deserialize         open using sqlite3_deserialize()
  -echo                = .echo on
  -init FILENAME       read/process named file
  -[no]header          = .header [off] or on
  -help                show this message
  -html                = .mode HTML
  -interactive         force interactive I/O
  -json                = .mode json
  -line                = .mode line
  -list                = .mode list
  -lookaside SIZE N    use N entries of SIZE bytes for lookaside memory
  -markdown            = .mode markdown
  -memtrace            trace all memory allocations and (de)allocations
  -mmap N              default mmap size set to N
  -newline SEP         = .separator "|" SEP. Default: "\n"
  -nofollow            = refuse to open symbolic links to database files
  -nullvalue TEXT      = .NULLvalue TEXT. Default ""
  -pagecache SIZE N    use N slots of SIZE bytes each for page cache memory
  -quote               = .mode quote
  -readonly            open the database read-only
  -separator SEP       = .separator SEP. Default: "|"
  -stats               print memory stats before each finalize
  -table               = .mode table
  -tabs                = .mode tabs
  -version             = .version
  -vfs NAME            use NAME as the default VFS
  -zip                 open the file as a ZIP Archive

DotCommands

[編輯 | 編輯原始碼]
SQLite3.37 .helpScreen (a-g)
  • .archive OPT... FILE... 管理 SQL 歸檔 a
  • .auth (ON,OFF) 顯示授權程式回撥
  • .backup ?DB? FILE 將 DB(預設“main”)備份到 FILE
  • .bail (on,off) 遇到錯誤後停止。預設關閉
  • .binary (on,off) 開啟或關閉二進位制輸出。預設關閉
  • .cd DIRECTORY 更改工作 DIRECTORY
  • .changes (on,off) 顯示 SQL 更改的行數
  • .check GLOB 如果自 .testcase 以來的輸出與預期不符,則失敗
  • .clone NEWDB 將資料從現有資料庫克隆到 NEWDB
  • .connection (close #) 開啟/關閉輔助資料庫
  • .databases 顯示已附加資料庫的名稱和檔案
  • .dbconfig ?op? ?val? 顯示/更改 sqlite3_db_config() 選項
  • .dbinfo ?DB? 顯示有關資料庫的狀態資訊
  • .dump ?TABLE? ... 以 SQL 文字格式轉儲資料庫t
  • .echo (on,off) 開啟或關閉命令回顯
  • .eqp (on,off,trigger,full) 啟用/停用自動 EXPLAIN QUERY PLAN
  • .excel 以電子表格形式顯示下一條命令的輸出
  • .exit ?CODE? 退出 (=.q) 此程式(返回 CODE)
  • .expert 實驗性。用於特定查詢的索引
  • .explain (on,off,auto) 解釋格式定義。自動
  • .filectrl CMD ... 執行 sqlite3_file_control() 操作f
  • .fullschema ?--indent? 顯示模式和 sqlite_stat 表的內容
      (h-q)
  • .headers (on,off) 開啟或關閉標題顯示
  • .help ?REGEX? 顯示此訊息(或僅顯示 REGEX)h
  • .import OPT... FILE TABLE 將 FILE 匯入 TABLE i
  • .imposter INDEX TABLE 在索引 INDEX 上建立模擬表 TABLE
  • .indexes ?TABLE? 顯示所有索引的名稱t
  • .limit ?LIMIT? ?VAL? 顯示或更改 SQLITE_LIMIT 的值
  • .lint OPTIONS 報告潛在的模式問題。
  • .load FILE ?ENTRY? 載入擴充套件庫
  • .log (FILE,off) 開啟或關閉日誌記錄。FILE 可以是 stderr/stdout
  • .mode MODE ?TABLE? 設定 TABLE 的輸出模式m
  • .nullvalue STRING 使用 STRING 代替 NULL 值
  • .nonce STRING 為一條命令停用安全模式
  • .once (-e,-x,FILE) 僅將下一條 SQL 命令的輸出到 FILEe
  • .open ?OPTIONS? ?FILE? 關閉現有資料庫並重新開啟 FILEo
  • .output ?FILE? 將輸出傳送到 FILE 或 stdout
  • .parameter CMD ... 管理 SQL 引數繫結p
  • .print STRING... 列印文字 STRING
  • .progress N 每執行 N 個操作碼後呼叫進度處理程式
  • .prompt MAIN CONTINUE 替換標準提示
  • .quit 退出 (=.ex) 此程式
------ 截圖來自: ------
https://wikibook.tw/wiki/SQLite/Release3#DotCommands
      (r-z)
  • .read FILENAME 執行 FILENAME 中的 SQL
  • .recover 從損壞的資料庫中恢復資料
  • .restore ?DB? FILE 從 FILE 中恢復 DB 內容(預設“main”)
  • .save FILE 將記憶體資料庫寫入 FILE
  • .scanstats (on,off) sqlite3_stmt_scanstatus() 指標
  • .schema ?PATTERN? 顯示與 PATTERN 匹配的 CREATE 語句s1
  • .selftest ?--init? 執行 SELFTEST 表中定義的測試
  • .separator COL ?ROW? 更改列的(以及可選的)行的分隔符s2
  • .sha3sum ?OPTIONS...? 計算資料庫內容的 SHA3 雜湊值
  • .shell CMD ARGS... 在作業系統 shell 中執行 CMD ARGS... (=sy)
  • .show 顯示各種設定的當前值
  • .stats (on,off) 顯示統計資訊或開啟/關閉統計資訊
  • .system CMD ARGS... 在作業系統 shell 中執行 CMD ARGS... (=.sh)
  • .tables ?TABLE? 列出表的名稱t1
  • .testcase NAME 開始將輸出重定向到 'testcase-out.txt'
  • .testctrl CMD ... 執行 sqlite3_test_control() 操作t2
  • .timeout MS 嘗試開啟鎖定的表 MS 毫秒
  • .timer (on,off) 開啟或關閉 SQL 定時器
  • .trace (FILE,off) 在執行時輸出每個 SQL 語句
  • .version 顯示詳細的 SQLite 版本資訊
  • .vfsinfo ?AUX? 關於頂級 VFS 的資訊
  • .vfslist 列出所有可用的 VFS
  • .vfsname' ?AUX? 列印 VFS 堆疊的名稱
  • .width NUM1 ... 為“column”模式設定列寬w
D-註釋

更多資訊 @sqlite.org/cli.html#special_commands_to_sqlite3_dot_commands_

a .ar [OPTION...] [FILE...] .ar 命令管理 sqlar 歸檔。

示例

 .ar -cf archive.sar foo bar    # Create archive.sar from files foo and bar
 .ar -tf archive.sar            # List members of archive.sar
 .ar -xvf archive.sar           # Verbosely extract files from archive.sar

每條命令列必須包含一個命令選項

 -c, --create               Create a new archive
 -u, --update               Update or add files to an existing archive
 -t, --list                 List contents of archive
 -x, --extract              Extract files from archive

以及零個或多個可選選項

 -v, --verbose              Print each filename as it is processed
 -f FILE, --file FILE       Operate on archive FILE (default is current db)
 -a FILE, --append FILE     Operate on FILE opened using the apndvfs VFS
 -C DIR, --directory DIR    Change to directory DIR to read/extract files
 -n, --dryrun               Show the SQL that would have occurred

另請參閱:sar-支援

e or invoke system text editor (-e) or spreadsheet (-x) on the output.
f CMD ... 可以是 size_limit [LIMIT]; chunk_size SIZE;
persist_wal [BOOLEAN]; psow [BOOLEAN]; tempfilename
has_moved; lock_timeout MILLISEC
h 僅顯示與 REGEX 匹配的命令,例如 p*= 以 p 開頭的
i 選項以跳過第一行; --skip 1
l lintOptions:fkey-indexes 查詢缺少的外部索引鍵索引
m 模式:ascii 由 0x1F 和 0x1E 分隔;csv 逗號分隔值;
column 左對齊的列(參見 .width);html HTML <table> 程式碼;
insert TABLE 的 SQL 插入語句;line 每行一個值
list 由“|”分隔;quote 作為 SQL 對答案進行轉義
tabs 製表符分隔值;tcl TCL 列表元素
o openOptions:--new 選項從空檔案開始
其他選項:--readonly --append --zip
p paramCMDs
clear       清除所有繫結
init           初始化儲存繫結的 TEMP 表
list           列出當前引數繫結
set PARAMETER VALUE 為給定的 SQL 引數 PARAMETER 設定值為 VALUE
     PARAMETER 應以 '$'、':'、'@' 或 '?' 開頭
unset PARAMETER            從繫結表中移除 PARAMETER
s1 schemaOption:--indent 用於美化列印
s2 用於輸出模式和 .import 的分隔符
t1 如果指定了 TABLE,則僅轉儲與 LIKE 模式 TABLE 匹配的表。
t2 CMD ... 可以是 always BOOLEAN; assert BOOLEAN; byteorder;
imposter SCHEMA ON/OFF ROOTPAGE; internal_functions BOOLEAN; localtime_fault BOOLEAN
never_corrupt BOOLEAN; optimizations DISABLE-MASK; pending_byte OFFSET; prng_reset;
prng_restore; prng_save; reserve BYTES-OF-RESERVE
w 負值右對齊

如果要將以下詞語用作識別符號,則需要將該詞語括在兩個雙引號 '" '、反引號 '`' 或 '[' 和 ']' 中。[1]

      A-B
  • ABORT
  • ACTION
  • ADD
  • AFTER
  • ALL
  • ALTER
  • ALWAYS
  • ANALYZE
  • AND
  • AS
  • ASC
  • ATTACH
  • AUTOINCREMENT
  • BEFORE
  • BEGIN
  • BETWEEN
  • BY
      C-Def
  • CASCADE
  • CASE
  • CAST
  • CHECK
  • COLLATE
  • COLUMN
  • COMMIT
  • CONFLICT
  • CONSTRAINT
  • CREATE
  • CROSS
  • CURRENT
  • CURRENT_DATE
  • CURRENT_TIME
  • CURRENT_TIMESTAMP
  • DATABASE
  • DEFAULT
  • DEFERRABLE
  • DEFERRED
      Del-Fi
  • DELETE
  • DESC
  • DETACH
  • DISTINCT
  • DO
  • DROP
  • EACH
  • ELSE
  • END
  • ESCAPE
  • EXCEPT
  • EXCLUDE
  • EXCLUSIVE
  • EXISTS
  • EXPLAIN
  • FAIL
  • FALSE[2]
  • FILTER
  • FIRST
      Fo-Inn
  • FOLLOWING
  • FOR
  • FOREIGN
  • FROM
  • FULL
  • GENERATED
  • GLOB
  • GROUP
  • GROUPS
  • HAVING
  • IF
  • IGNORE
  • IMMEDIATE
  • IN
  • INDEX
  • INDEXED
  • INITIALLY
  • INNER
      Ins-N
  • INSERT
  • INSTEAD
  • INTERSECT
  • INTO
  • IS
  • ISNULL
  • JOIN
  • KEY
  • LAST
  • LEFT
  • LIKE
  • LIMIT
  • 匹配
  • 自然
  • 非空
  • 空值
      O-Ref
  • 偏移
  • 排序
  • 其他
  • 外部
  • 超過
  • 分割槽
  • 計劃
  • PRAGMA
  • 前一個
  • 主鍵
  • 查詢
  • 引發
  • 範圍
  • 遞迴
  • 引用
      Reg-Ti
  • 正則表示式
  • 重建索引
  • 釋放
  • 重新命名
  • 替換
  • 限制
  • 回滾
  • 儲存點
  • 選擇
  • 設定
  • 臨時
  • 臨時
  • 然後
  • 並列
      To-Z
  • 事務
  • 觸發器
  • [2]
  • 無界
  • 聯合
  • 唯一
  • 更新
  • 使用
  • 真空
  • 檢視
  • 虛擬
  • 哪裡
  • 視窗
  • 沒有
K-notes 和/或參考文獻
  1. SQLite 關鍵字 更多資訊 @sqlite.org/lang_keywords.html。
  2. a b 不是關鍵字,而是預定義變數。用作識別符號可能會造成混淆。

PRAGMA

[edit | edit source]

PRAGMA 是特殊命令,用於顯示或[更改]開啟資料庫[模式](s)的行為

  • 用法:PRAGMA [模式名.]名稱 [ = 文字或整數 ];
活動 PRAGMA (61)
  • analysis_limit
  • application_id
  • auto_vacuum
  • automatic_index
  • busy_timeout
  • cache_size
  • cache_spill
  • case_sensitive_like
  • cell_size_check
  • checkpoint_fullfsync
  • collation_list
  • compile_options
  • data_version
  • database_list
  • defer_foreign_keys
  • encoding
  • foreign_key_check
  • foreign_key_list
  • foreign_keys
  • freelist_count
  • fullfsync
  • function_list
  • hard_heap_limit
  • ignore_check_constraints
  • incremental_vacuum
  • index_info
  • index_list
  • index_xinfo
  • integrity_check
  • journal_mode
  • journal_size_limit
  • legacy_alter_table
  • legacy_file_format
  • locking_mode
  • max_page_count
  • mmap_size
  • module_list
  • optimize
  • page_count
  • page_size
  • pragma_list
  • query_only
  • quick_check
  • read_uncommitted
  • recursive_triggers
  • reverse_unordered_selects
  • schema_version
  • secure_delete
  • shrink_memory
  • soft_heap_limit
  • stats
  • synchronous
  • table_info
  • table_xinfo
  • temp_store
  • threads
  • trusted_schema
  • user_version
  • wal_autocheckpoint
  • wal_checkpoint
  • writable_schema
已棄用的 PRAGMA (7)
  • count_changes
  • data_store_directory
  • default_cache_size
  • empty_result_callbacks
  • full_column_names
  • short_column_names
  • temp_store_directory
具有非標準編譯選項的 PRAGMA (5)
  • parser_trace
  • vdbe_addoptrace
  • vdbe_debug
  • vdbe_listing
  • vdbe_trace
華夏公益教科書