SQLite 提供了一个名为 sqlite3 的简单命令行实用程序,它允许用户针对 SQLite 数据库手动执行 SQL 语句。本章简要介绍 sqlite3 点(.)命令。
- 点命令必须以"."开头。位于左边距,前面没有空格。
- 点命令必须完全包含在单个输入行中。
- 点命令不能出现在普通 SQL 的中间陈述。换句话说,点命令不能出现在继续提示符处。
- 点命令无法识别注释。
所有可用的点(.)命令都是下面列出:
序号 | 命令和说明 |
---|---|
1. | .archive ... 管理 SQL 归档 |
2. | .auth ON|OFF 显示授权者回调 |
3. | .backup?DB? FILE 将数据库(默认"main")备份到FILE |
4. | .bail on|off 遇到错误后停止。默认关闭 |
5. | .binary on|off 打开或关闭二进制输出。默认 OFF |
6. | .cd DIRECTORY 将工作目录更改为 DIRECTORY |
7. | .changes on|off 显示 SQL 更改的行数 |
8. | .check GLOB 如果自 .testcase 以来的输出不匹配,则失败 |
9. | .clone NEWDB 将现有数据库中的数据克隆到NEWDB中 |
10. | .connection [close] [#] 打开或关闭辅助数据库连接 |
11. | .databases 列出附加数据库的名称和文件 |
12. | .dbconfig?op? ?val? 列出或更改 sqlite3_db_config() 选项 |
13. | .dbinfo ?DB? 显示有关数据库的状态信息 |
14. | .dump ?OBJECTS? 将数据库内容渲染为 SQL |
15. | .echo on|off 打开或关闭命令回显 |
16. | .eqp on|off|full|... 启用或禁用自动 EXPLAIN QUERY PLAN |
17. | .excel 显示以下输出电子表格中的下一个命令 |
18. | .exit ?CODE? 退出此程序并返回代码 CODE |
19. | .expert 实验性的。建议查询索引 |
20。 | .explain ?on|off|auto? 更改 EXPLAIN格式化模式。默认值:auto |
21. | .filectrl CMD ... 运行各种 sqlite3_file_control() 操作 |
22. | .fullschema ?--indent? 显示 schema 和 sqlite_stat 表的内容 |
23. | .headers on|off 打开或关闭标题显示 |
24. | .help ?-all? ?PATTERN? 显示 PATTERN 的帮助文本 |
25. | .import FILE TABLE 将数据从 FILE 导入到 TABLE |
26. | .imposter INDEX TABLE 创建 imposter索引 INDEX 上的表 TABLE |
27. | .indexes ?TABLE? 显示索引名称 |
28。 | .limit?LIMIT? ?VAL? 显示或更改 SQLITE_LIMIT 的值 |
29. | .lint OPTIONS 报告潜在的架构问题。 |
30. | .load FILE ?ENTRY? 加载扩展库 |
31. | .log FILE|off 打开或关闭日志记录。文件可以是 stderr/stdout |
32. | .mode MODE ?TABLE? 设置输出模式,其中 MODE 为以下之一:
|
33. | .nonce STRING 如果随机数匹配,则禁用一个命令的安全模式 |
34. | .nullvalue STRING 使用 STRING 代替 NULL 值 |
35 | .once?OPTIONS? ?FILE? 下一个 SQL 命令的输出仅到 FILE |
36. | .open ?OPTIONS ? ?FILE? 关闭现有数据库并重新打开 FILE |
37. | .output ?FILE? 如果省略 FILE,则将输出发送到 FILE 或 stdout |
38. | .parameter CMD ... 管理 SQL 参数绑定 |
39. | .print STRING... 打印文字 STRING |
40. | .progress N 每 N 个操作码后调用进度处理程序 |
41. | .prompt MAIN CONTINUE 替换标准提示 |
42. | .quit 退出此程序 |
43. | .read FILE 从 FILE 读取输入 |
44. | .recover 从损坏的数据库中恢复尽可能多的数据。 |
45。 | .restore?DB? FILE 从FILE恢复数据库内容(默认"main") |
46. | .save FILE 将内存数据库写入FILE |
47. | .scanstats on|off 打开或关闭 sqlite3_stmt_scanstatus() 指标 |
48. | .schema ?PATTERN? 显示与 PATTERN 匹配的 CREATE 语句 |
49. | .selftest ?OPTIONS? 运行中定义的测试SELFTEST 表 |
50。 | .separator COL ?ROW? 更改列和行分隔符 |
51. | .session?NAME? CMD ... 创建或控制会话 |
52. | .sha3sum ... 计算数据库内容的 SHA3 哈希 |
53。 | .shell CMD ARGS... 在系统 shell 中运行 CMD ARGS... |
54. | .show 显示各种设置的当前值 |
55。 | .stats ?ARG? 显示统计数据或回合统计数据打开或关闭 |
56。 | .system CMD ARGS... 运行 CMD ARGS...在系统 shell |
57. | .tables ?TABLE? 列出与 LIKE 模式 TABLE 匹配的表名称 |
58. | .testcase NAME 开始将输出重定向到"testcase-out.txt" |
59. | .testctrl CMD ... 运行各种sqlite3_test_control()操作 |
60. | .timeout MS 尝试打开锁定MS 毫秒表 |
61. | .timer on|off 打开或关闭 SQL 计时器 |
62. | .trace?OPTIONS? 在运行时输出每个 SQL 语句 |
63. | .vfsinfo ?AUX? 顶级VFS信息 |
64. | .vfslist 列出所有可用的 VFS |
65. | .vfsname ?AUX? 打印 VFS 堆栈的名称 |
66. | .width NUM1 NUM2 ... 设置列式输出的最小列宽 |
格式化输出
以下点命令序列可用于格式化输出:
sqlite> .header on
sqlite> .mode column
sqlite> .timer on
sqlite>
上述设置将在
EmpID Name City Age Salary
-------- ---------- ----------- ---------- ----------
1 John London 25 3000.0
2 Marry New York 24 2750.0
3 Jo Paris 27 2800.0
4 Kim Amsterdam 30 3100.0
5 Ramesh New Delhi 28 3000.0
6 Huang Beijing 28 2800.0
CPU Time: user 0.000000 sys 0.000000
sqlite_master 表
master 表保存有关数据库表的关键信息,称为 sqlite_master。可以使用以下点命令查看其架构:
sqlite> .schema sqlite_master
这将产生类似于以下内容的结果:
CREATE TABLE sqlite_master (
type text,
name text,
tbl_name text,
rootpage integer,
sql text
);