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
    备份数据库(默认“主”)到文件
    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 的输出模式。没有 args,它打开 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...
    打印文字字符串
    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
    为“列”模式设置列宽
    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
    );