SQLite命令
本章将带你了解SQLite程序员使用的简单且有用的命令。这些命令称为SQLite点命令,但这些命令的例外是它们不应以分号(;)终止。
让我们从键入一个简单的开始sqlite3命令提示符下的命令,它将为你提供SQLite命令提示符,你将在其中发出各种SQLite命令。
$sqlite3 SQLite version 3.3.6 Enter ".help" for instructions sqlite>
有关可用的点命令的列表,你可以随时输入“ .help”。例如:
sqlite>.help
上面的命令将显示各种重要的SQLite点命令的列表,下表中列出了这些命令。
序号. | 命令与说明 |
---|---|
1 | .backup ?DB? FILE 备份数据库(默认为“主”)到FILE。 |
2 | .bail ON|OFF 遇到错误后停止,默认关闭。 |
3 | .databases 列出附加数据库的名称和文件。 |
4 | .dump ?TABLE? 以SQL文本格式转储数据库,如果指定了TABLE,则仅转储与LIKE模式TABLE相匹配的表。 |
5 | .echo ON|OFF 打开或关闭命令回显。 |
6 | .exit 退出SQLite提示。 |
7 | .explain ON | OFF 打开或关闭适合EXPLAIN的输出模式。没有参数,它将打开EXPLAIN。 |
8 | .header(s) ON|OFF 打开或关闭标题显示。 |
9 | .help 显示这则讯息。 |
10 | .import FILE TABLE 将数据从FILE导入TABLE。 |
11 | .indices ?TABLE? 显示所有索引的名称,如果指定了TABLE,则仅显示与LIKE模式TABLE匹配的表的索引。 |
12 | .load FILE ?ENTRY? 加载扩展库。 |
13 | .log FILE|off 打开或关闭登录,FILE可以是stderr / stdout。 |
14 | .mode MODE 设置输出模式,其中MODE为以下之一:
|
15 | .nullvalue STRING 打印STRING代替NULL值。 |
16 | .output FILENAME 将输出发送到FILENAME。 |
17 | .output stdout 将输出发送到屏幕。 |
18 | .print STRING... 打印文字STRING。 |
19 | .prompt MAIN CONTINUE 替换标准提示。 |
20 | .quit 退出SQLite提示。 |
21 | .read FILENAME 在FILENAME中执行SQL。 |
22 | .schema ?TABLE? 显示CREATE语句,如果指定了TABLE,则仅显示与LIKE模式TABLE匹配的表。 |
23 | .separator STRING 更改输出模式和.import使用的分隔符。 |
24 | .show 显示各种设置的当前值。 |
25 | .stats ON|OFF 开启或关闭统计。 |
26 | .tables ?PATTERN? 列出与LIKE模式匹配的表的名称。 |
27 | .timeout MS 尝试打开锁定的表,以毫秒为单位。 |
28 | .width NUM NUM 设置“列”模式的列宽。 |
29 | .timer ON|OFF 打开或关闭CPU计时器测量。 |
我们试试看.show命令以查看SQLite命令提示符的默认设置。
sqlite>.show echo: off explain: off headers: off mode: column nullvalue: "" output: stdout separator: "|" width: sqlite>
确保在sqlite>提示符和点命令之间没有空格,否则它将无法正常工作。
格式化输出
你可以使用以下点命令序列来格式化输出。
sqlite>.header on sqlite>.mode column sqlite>.timer on sqlite>
上面的设置将产生以下格式的输出。
ID NAME 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, sql text );