Skip to content

SQLite - 命令

SQLite 命令行界面 (CLI) 是一个用于管理 SQLite 数据库的强大工具。它拥有一组元命令,通常被称为“点命令”,因为它们以句点 (.) 开头。这些命令不是 SQL;它们是针对 CLI 工具本身的指令,并且不能以分号 (;) 结尾。

要启动会话,请打开您的终端并运行 sqlite3 命令,可以选择提供一个数据库文件名。

$ sqlite3 mydatabase.db
SQLite version 3.45.1 2024-01-30 16:01:20
Enter ".help" for usage hints.
sqlite>

您可以通过输入 .help 获取所有可用点命令的完整列表。

sqlite> .help

虽然命令很多,但这里列出了一些日常开发中最基本的命令:

命令描述与现代用法
.databases列出所有已附加的数据库、它们的名称和文件路径。
.tables ?PATTERN?列出表名。可以使用 .tables %log% 这样的模式查找特定的表。
.schema ?TABLE?显示表、索引或视图的 CREATE 语句。对于理解数据库结构至关重要。
.dump ?TABLE?将整个数据库或特定表导出为 SQL 语句。非常适用于备份和迁移。
.import FILE TABLE将数据导入表中。结合 --csv 标志可实现强大的 CSV 文件导入。
.output FILE将后续命令输出重定向到文件。使用 .output stdout 切换回屏幕输出。
.mode MODE更改输出格式。column 有利于可读性。csv、json 和 markdown 非常适合互操作性。
.header on|off切换输出中列标题的显示。
.explain query plan …显示 SQLite 执行查询的计划。对于性能调优至关重要。
.read FILENAME从文件中执行 SQL 命令。对于运行脚本很有用。
.quit or `.exit退出 SQLite CLI。

实用工作流程:检查和导出数据

Section titled “实用工作流程:检查和导出数据”

我们来组合一些命令,完成一项常见任务:查询数据并将其导出到 JSON 文件。

sqlite> .mode json
sqlite> .header on
sqlite> .output employees.json
sqlite> SELECT id, first_name, department FROM employees WHERE age > 30;
sqlite> .output stdout -- Reset output to the console
sqlite> .quit

运行这些命令后,将创建一个名为 employees.json 的文件,其中包含查询结果,并以 JSON 数组格式呈现,可供 Web 应用程序或 API 使用。

数据库的内部 schema 存储在一个名为 sqlite_schema 的特殊表中。虽然旧的 sqlite_master 仍然存在以实现向后兼容,但 sqlite_schema 是现代标准。您可以直接查询它以获取有关数据库对象的元数据。

sqlite> .schema sqlite_schema
CREATE TABLE sqlite_schema(
type text,
name text,
tbl_name text,
rootpage integer,
sql text
);

例如,要列出数据库中的所有触发器:

SELECT name, sql FROM sqlite_schema WHERE type = 'trigger';

虽然 CLI 功能强大,但有几个出色的图形用户界面 (GUI) 工具可以提高生产力,特别是对于复杂的分析和可视化。流行的选择包括:

  • DB Browser for SQLite: 一款免费、开源且用户友好的工具。
  • DBeaver: 一款支持 SQLite 和许多其他数据库的通用数据库工具。
  • JetBrains DataGrip: 一款专业的、多引擎的数据库 IDE,具有高级功能。