导读:本期聚焦于小伙伴创作的《SQLite命令行工具常用命令有哪些?新手如何快速上手操作数据库》,敬请观看详情。刚接触本地轻量数据库的人常卡在命令行操作上,不知道如何建表或查数据。SQLite自带的sqlite3工具其实只需掌握十几条指令就能应付日常。比如用.open打开库文件,用.schema看表结构,用.headers on让查询结果带列名。本文梳理最实用的命令组合,说明参数含义与执行效果,帮你绕开输错指令导致库损坏的坑,不必装图形客户端也能顺畅管理数据。

SQLite作为嵌入式关系型数据库,自带了一个名为sqlite3的命令行工具。它不需要启动独立服务,直接通过终端就能完成建库、建表、增删改查以及导出数据等操作。对于做本地缓存、移动端存储或者小型工具开发的场景,熟练使用这个命令行工具可以极大提升调试效率。

SQLite命令行工具常用命令有哪些?新手如何快速上手操作数据库

一、连接与打开数据库

最基础的用法是在终端输入sqlite3命令进入交互界面,如果后面跟上文件名,则会直接打开或新建对应的数据库文件。当文件不存在时,SQLite会在第一次执行写操作时才真正创建文件,这点与一些强制建文件的数据库不同。

进入交互模式后,可以使用.open指令在会话中切换数据库。例如已经进入了sqlite3但想换一个库,就不用退出再重进。下面的示例展示了从新建库到切换库的过程:

-- 终端直接新建并打开 test.db
sqlite3 test.db

-- 在交互模式中切换到 another.db
.open another.db

-- 查看当前打开的数据库文件路径
.database

需要注意的是,如果.open后面跟的是相对路径,它是相对于你启动命令行时的当前工作目录,而不是相对于上一个库文件的位置。不少新手在这里弄错路径,导致以为数据没保存。

二、查看结构与元数据命令

在排查数据问题的时候,先弄清表结构是关键。SQLite提供了一组以点开头的元命令(dot command)来展示元数据,这些命令不是SQL语句,结尾不需要分号。

常用的是.tables列出所有表,.schema查看建表语句,.indexes看索引。如果想看某个具体表的结构,可以给.schema传表名。示例如下:

-- 列出当前库所有表
.tables

-- 查看 users 表的建表 SQL
.schema users

-- 查看所有索引
.indexes

这些命令背后实际是查询了SQLite内部的sqlite_master系统表。如果你用SQL去查sqlite_master,能看到更原始的信息,比如表的rootpage和完整的sql字段。但在日常快速浏览时,点命令明显更省事。

三、查询结果的格式化输出

默认情况下,sqlite3命令行输出的数据是没有列名、也没有分隔符对齐的,看起来非常乱。通过几个格式化命令可以大幅改善可读性。

.headers on开启列名显示,.mode column让结果按列对齐,.timer on可以显示每条语句执行耗时。组合使用之后,输出效果接近图形化客户端。代码演示:

-- 开启列名
.headers on

-- 列对齐模式
.mode column

-- 打开耗时统计
.timer on

-- 正常 SQL 查询
SELECT id, name FROM users LIMIT 5;

除了column模式,还有.mode json.mode csv等。如果你要把数据交给别的程序处理,csv模式配合.once命令直接导出文件会非常高效,避免自己写脚本转换。

四、数据导入与导出

命令行工具不仅查数据方便,做数据迁移也很顺手。导入CSV用.import,导出可以用.dump生成SQL脚本,或者用前面说的mode加重定向。

下面示例把一个csv文件导入到表里,并把整个库导出成sql文件。注意导入前要先建好表结构,且字段顺序和csv一致,否则会错位。

-- 先建表
CREATE TABLE logs(ts TEXT, msg TEXT);

-- 导入 csv,指定分隔符为逗号
.mode csv
.import data.csv logs

-- 导出整个库为 SQL 文本
.output backup.sql
.dump
.output stdout

.dump导出的内容包含建表语句和INSERT数据,可以直接在另一个SQLite库里用.read执行恢复。这种方式比拷贝数据库文件更通用,也方便做版本差异对比。

五、执行SQL文件与批处理

当有一堆SQL要跑时,交互模式一行行敲很不现实。可以把语句写进文件,用.read在会话里执行,或者直接用命令行非交互模式批量跑。

非交互模式适合写脚本,比如每天定时初始化数据。下面展示了两种做法:

-- 方式一:进入 sqlite3 后读取文件
sqlite3 my.db
.read init.sql

-- 方式二:终端直接执行文件中的 SQL
sqlite3 my.db < init.sql

init.sql里可以混合普通SQL和点命令,但点命令在非交互的<重定向方式下部分不支持,所以复杂初始化建议用.read。另外,给sqlite3加-batch参数可禁止交互提示,避免脚本卡住。

六、常用辅助与退出命令

还有一些小命令能提升使用体验。.help列出全部点命令,.quit.exit退出,.show查看当前所有格式设置。

如果误操作进了乱糟糟的输出状态,用.show确认配置,再重新设置即可。示例如下:

-- 查看当前设置
.show

-- 退出
.quit

掌握上面这些SQLite命令行工具常用命令,基本就能脱离图形界面完成绝大部分本地数据库任务。建议在自己机器上建个测试库,把每个命令都敲一遍,比只看文档记忆深刻得多。

SQLitesqlite3_commandcommand_line修改时间:2026-08-11 20:27:33

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。