Skip to content

Latest commit

 

History

History
142 lines (115 loc) · 3.39 KB

82.01、SQLite 命令.adoc

File metadata and controls

142 lines (115 loc) · 3.39 KB

常见的 sqlite3 命令(command)

Important

与 SQL 语句不同,sqlite3 命令禁止以分号 ; 结尾,否则分号会作为命令的一部分被读取

Table 1. 打开、关闭、读取、写入
sqlite3 命令 含义 备注

.help [匹配文本]

打印含有匹配文本的命令的帮助

若不指定匹配文本,则打印所有命令的简短帮助

.version

显示当前 sqlite3 的版本,以及附带组件的版本

.quit

关闭 sqlite3.exe 交互

.open [选项] <数据库文件>

将一个数据库作为 main 数据库打开
常用选项
--readonly 以只读方式打开数据库

等价于在命令行中运行
sqilte3.exe <数据库文件>
注意,以这种方式打开的数据库,不可以被 DETACH DATABASE 关闭
但可以使用 .open '' 关闭,不过这样所有已经 ATTACH 的数据库也会被一同关闭。

.backup [数据库名] <保存路径>
以及
.save [数据库名] <保存路径>

将指定的数据库保存为一个数据库文件

若不指定数据库名,则将 main 保存至指定文件

.read <FILE>

从文件读取命令或语句,并执行

Table 2. 枚举相关的命令
sqlite3 命令 含义 备注

.databases

显示当前打开的/连接的数据库

会显示数据库的名称、文件名、以及读写权限

Tip

在使用 ATTACH DATABASE 语句之后会很有用

.tables [表名]

罗列匹配上的表的名称

若不指定表名,则罗列全部的表

罗列以 es 作为表名结尾的表
.table '%es'

.schema [表名]

罗列匹配上的表的架构

返回值均以 CREATE 开头,模拟了创建表的流程

.fullschema

罗列全部的表架构,包含特殊的表 sqlite_stat

特别注意,这个命令仅对 main 数据库有效

.indexes [表名]

显示特定表的索引

若不指定表名,则显示全部的索引

罗列以 es 作为表名结尾的索引
.indexes '%es'
Table 3. 修改输出模式
sqlite3 命令 含义 备注

.mode [显示模式]

设置输出的显示模式

没有参数时,输出当前的显示模式,并将额外参数还原为默认值
要获得所有支持的模式,可以随便用一个字符当参数,看看输出的报错即可

Note

columntablebox 等模式下可能会出现输出未占用全部的窗口但出现了换行的问题
此时可以使用附加参数 --wrap 扩展总显示宽度
eg.

# 将总换行宽度从默认值(60)修改为 100
.mode column --wrap 100

.header <on|off>

打开或关闭表头的显示

.width <第 1 列宽度> <第 2 列宽度> <第 3 列宽度>

设置每列的宽度

Table 4. 输出重定向
sqlite3 命令 含义 备注

.output [文件名]

修改输出的位置

默认为 stdout,如果设置为文件,则将输出写入指定的文件中。
使用不带参数的 .output 可以将输出重新导向至 stdout

.once [文件名]

修改下一条 sqlite3 命令/ SQL 语句 的输出位置

Table 5. 拷贝数据库
sqlite3 命令 含义 备注

.clone '<新数据库文件名>'

将主数据库的全部数据拷贝至指定的文件中