SQLite 命令



本章将引导您学习 SQLite 程序员使用的简单而有用的命令。这些命令称为 SQLite 点命令,这些命令的例外情况是它们不应以分号 (;) 结尾。

让我们从在命令提示符下键入简单的 sqlite3 命令开始,这将为您提供 SQLite 命令提示符,您可以在其中发出各种 SQLite 命令。

$sqlite3
SQLite version 3.3.6
Enter ".help" for instructions
sqlite>

要列出可用的点命令,您可以随时输入“.help”。例如:

sqlite>.help

上述命令将显示各种重要的 SQLite 点命令列表,这些命令列在下面的表格中。

序号 命令及描述
1

.backup ?数据库? 文件

将数据库(默认为“main”)备份到文件

2

.bail ON|OFF

遇到错误后停止。默认为 OFF

3

.databases

列出已附加数据库的名称和文件

4

.dump ?表?

以 SQL 文本格式转储数据库。如果指定了表,则只转储与 LIKE 模式表匹配的表

5

.echo ON|OFF

打开或关闭命令回显

6

.exit

退出 SQLite 提示符

7

.explain ON|OFF

打开或关闭适合 EXPLAIN 的输出模式。无参数时,它会打开 EXPLAIN

8

.header(s) ON|OFF

打开或关闭标题的显示

9

.help

显示此消息

10

.import 文件 表

将数据从文件导入表

11

.indices ?表?

显示所有索引的名称。如果指定了表,则只显示与 LIKE 模式表匹配的表的索引

12

.load 文件 ?入口?

加载扩展库

13

.log 文件|off

打开或关闭日志记录。文件可以是 stderr/stdout

14

.mode 模式

设置输出模式,其中模式是以下之一:

  • csv - 逗号分隔值

  • column - 左对齐列。

  • html - HTML <table> 代码

  • insert - 表的 SQL 插入语句

  • line - 每行一个值

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

  • tabs - 制表符分隔的值

  • tcl - TCL 列表元素

15

.nullvalue 字符串

打印字符串以代替 NULL 值

16

.output 文件名

将输出发送到文件名

17

.output stdout

将输出发送到屏幕

18

.print 字符串...

打印文字字符串

19

.prompt 主 继续

替换标准提示

20

.quit

退出 SQLite 提示符

21

.read 文件名

执行文件名中的 SQL

22

.schema ?表?

显示 CREATE 语句。如果指定了表,则只显示与 LIKE 模式表匹配的表

23

.separator 字符串

更改输出模式和 .import 使用的分隔符

24

.show

显示各种设置的当前值

25

.stats ON|OFF

打开或关闭统计信息

26

.tables ?模式?

列出与 LIKE 模式匹配的表的名称

27

.timeout 毫秒

尝试打开被锁定的表,持续时间为毫秒毫秒

28

.width 数字 数字

为“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
);
广告