Sqlite 简明教程

SQLite - Commands

本章将带您了解 SQLite 程序员使用的简单且有用的命令。这些命令称为 SQLite 点命令,而且这些命令的例外之处是它们不应该以分号 (;) 结束。

让我们从在命令提示符中输入一个 sqlite3 命令开始,该命令会为您提供 SQLite 命令提示符,您可以在其中发出各种 SQLite 命令。

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

您可以随时输入 “.help” 来获取可用点命令的列表。例如−

sqlite>.help

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

Sr.No.

Command & Description

1

.backup ?DB? FILE 将 DB(默认值为 “main”)备份至 FILE

2

*.bail ON

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

3

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

4

.dump ?TABLE? 以 SQL 文本格式转储数据库。如果指定了表,则只转储与 TABLE 类似模式匹配的表

5

*.echo ON

OFF*打开或关闭命令回显

6

.exit Exit SQLite prompt

7

*.explain ON

OFF*打开或关闭适合于 EXPLAIN 的输出模式。如果没有参数,它将打开 EXPLAIN

8

*.header(s) ON

OFF*打开或关闭标头的显示

9

.help Show this message

10

.import FILE TABLE 从文件导入表中的数据

11

.indices ?TABLE? 显示所有索引的名称。如果指定了表,则只显示与 TABLE 类似模式匹配的表的索引

12

.load FILE ?ENTRY? 加载扩展库

13

*.log FILE

off*打开或关闭日志记录。FILE 可以是 stderr/stdout

14

.mode MODE 设置输出模式,其中模式为下列模式之一 − csv − 逗号分隔值 column − 左对齐列。 html − HTML <table> 代码 insert − TABLE 的 SQL 插入语句 line − 每行一个值 list − 值用 .separator 字符串分隔 tabs − 制表符分隔的值 tcl − TCL 列表元素

15

.nullvalue STRING 在 NULL 值位置打印字符串

16

.output FILENAME 将输出发送到文件名

17

.output stdout 将输出发送到屏幕

18

.print STRING…​ Print literal STRING

19

.prompt MAIN CONTINUE 替换标准提示

20

.quit Exit SQLite prompt

21

.read FILENAME 在 FILENAME 中执行 SQL

22

.schema ?TABLE? 显示 CREATE 语句。如果指定了表,则只显示与 TABLE 类似模式匹配的表

23

.separator STRING 更改输出模式和 .import 所用的分隔符

24

.show 显示各种设置的当前值

25

*.stats ON

OFF*打开或关闭统计

26

.tables ?PATTERN? 列出与 LIKE 模式相匹配的表名

27

.timeout MS 尝试将锁定表打开 MS 毫秒

28

.width NUM NUM 设置“列”模式的列宽

29

*.timer ON

让我们尝试 .show 命令,以查看 SQLite 命令提示符的默认设置。

sqlite>.show
     echo: off
  explain: off
  headers: off
     mode: column
nullvalue: ""
   output: stdout
separator: "|"
    width:
sqlite>

确保 sqlite> 提示符和 dot 命令之间没有空格,否则将不起作用。

Formatting Output

您可以使用以下 dot 命令序列来格式化输出。

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

The sqlite_master Table

master 表保存有关数据库表的关键信息,称为 sqlite_master 。您可以按如下方式查看其架构 −

sqlite>.schema sqlite_master

这将产生以下结果。

CREATE TABLE sqlite_master (
   type text,
   name text,
   tbl_name text,
   rootpage integer,
   sql text
);