跳转到内容

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://wikibooks.cn/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
华夏公益教科书