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

备份数据库(default "main")到文件

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

打开或关闭登录。 文件可以是标准错误/标准输出

14

.mode MODE

设置输出模式,其中 MODE 是其中之一 −

  • csv − 逗号分隔值

  • column − 左对齐的列。

  • html − HTML <table> 代码

  • insert − TABLE 的 SQL 插入语句

  • line − 每行一个值

  • list − 由 .separator 字符串分隔的值

  • tabs − 制表符分隔值

  • tcl − TCL 列表元素

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

尝试在 MS 毫秒内打开锁定的表

28

.width NUM NUM

设置"column"列模式的列宽

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
);