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为以下之一的输出模式-

  • 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

尝试打开锁定的表,以毫秒为单位

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>提示符和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

sqlite_master表

主表保存有关数据库表的关键信息,该表称为sqlite_master。您可以看到其架构,如下所示:

sqlite>.schema sqlite_master

这将产生以下结果。

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