SQLite - 命令
SQLite - 命令行界面 (CLI) 命令
Section titled “SQLite - 命令行界面 (CLI) 命令”SQLite 命令行界面 (CLI) 是一个用于管理 SQLite 数据库的强大工具。它拥有一组元命令,通常被称为“点命令”,因为它们以句点 (.) 开头。这些命令不是 SQL;它们是针对 CLI 工具本身的指令,并且不能以分号 (;) 结尾。
要启动会话,请打开您的终端并运行 sqlite3 命令,可以选择提供一个数据库文件名。
$ sqlite3 mydatabase.dbSQLite version 3.45.1 2024-01-30 16:01:20Enter ".help" for usage hints.sqlite>您可以通过输入 .help 获取所有可用点命令的完整列表。
sqlite> .help最常用的点命令
Section titled “最常用的点命令”虽然命令很多,但这里列出了一些日常开发中最基本的命令:
| 命令 | 描述与现代用法 |
|---|---|
| .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 jsonsqlite> .header onsqlite> .output employees.jsonsqlite> SELECT id, first_name, department FROM employees WHERE age > 30;sqlite> .output stdout -- Reset output to the consolesqlite> .quit运行这些命令后,将创建一个名为 employees.json 的文件,其中包含查询结果,并以 JSON 数组格式呈现,可供 Web 应用程序或 API 使用。
Schema 表:sqlite_schema
Section titled “Schema 表:sqlite_schema”数据库的内部 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 工具
Section titled “CLI 之外:GUI 工具”虽然 CLI 功能强大,但有几个出色的图形用户界面 (GUI) 工具可以提高生产力,特别是对于复杂的分析和可视化。流行的选择包括:
- DB Browser for SQLite: 一款免费、开源且用户友好的工具。
- DBeaver: 一款支持 SQLite 和许多其他数据库的通用数据库工具。
- JetBrains DataGrip: 一款专业的、多引擎的数据库 IDE,具有高级功能。