sqlite3 命令行工具使用指南

2025-06-25 17:50

本文主要是介绍sqlite3 命令行工具使用指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《sqlite3命令行工具使用指南》本文系统介绍sqlite3CLI的启动、数据库操作、元数据查询、数据导入导出及输出格式化命令,涵盖文件管理、备份恢复、性能统计等实用功能,并说明命令分类、SQL语...

一、启动与退出

  1. 启动数据库连接

    SQLite3 [database_file]  # 打开/创建数据库文件(如 test.db)
    sqlite3                  # 启动临时内存数据库 (:memory:)
    sqlite3 :memory:         # 显式启动内存数据库
    • 文件不存在时自动创建
    • 不指定文件名则使用临时内存数据库(关闭后消失)
  2. 退出 CLI

    .exit
    .quit
    Ctrl + D (Linjsux/MACOS)
    Ctrl + C (Windows)

二、数据库与文件操作

命令说明示例
.open [FILENAME]打开/切换数据库.open backup.db
.backup ?DB? FILE在线备份数据库.backup main backup_2023.androiddb
.restore ?DB? FILE从文件恢复数据库.restore main backup_2023.db
.dump ?TABLE?导出数据库为 SQL 脚本.dump > full.sql
.dump users > users.sql
.read FILENAME执行 phpSQL 脚本文件.read import_data.sql
.save FILE保存内存数据库到文件.save mem_backup.db

三、元数据查询

命令说明
.databases显示所有附加数据库
.tables ?PATTERN?列出表(支持通配符)
.schema ?TABLE?显示表结构(CREATE语句)
.indexes ?TABLE?列出索引
.fullschema显示完整 schema(包括隐藏信息)

四、数据操作与导入导出

  1. CSV 导入导出

    -- 设置 CSV 模式
    .mode csv
    .headers on   -- 导出时包含列名
    -- 导入 CSV
    .import users.csv users  -- 文件 → 表
    -- 导出 CSV
    .output users_export.csv
    SELECT * FROM users;
    .output stdout           -- 恢复输出到终端
  2. 其他格式

    .mode list       -- 自定义分隔符 (默认 '|')
    .mode insert     -- 生成 INSERT 语句
    .mode json       -- JSON 格式输出
    .separator ","   -- 设置分隔符(如 CSV)
    .nullvalue NULL  -- 指定 NULL 的显示值

五、查询输出格式化

命令效果示例输出
.mode list竖线分隔1|Alice|30
.mode csvCSV 格式"1","Alice","30"
.mode column表格对齐1 Alice 30
.mode box表格+边框┌──┬───────┬──┐
│1 │ Alice │30│
.mode jsonJSON 数组[{"id":1,"name":"Alice","age":30}]
.headers on/off显示/隐藏列名
.width NUM1 NUM2设置列宽.width 5 10 4
.timer on/off显示查询耗时Run Time: real 0.002 user 0.000000 sys 0.000000

六、实用功能

命令说明
.show显示当前所有设置
.stats on/off开关性能统计
.timefmt FORMAT设置日期格式
.shell CMD执行系统命令
.system CMD同上(别名)
.prompt MAIN CONTINUE自定义提示符

七、高级操作

  1. 附加多个数据库

    ATTACH DATABASE 'aux.db' AS aux;
    SELECT * FROM main.users JOIN aux.orders ...;
    .databases  -- 查看附加数据库
  2. 执行 PRAGMA 配置

    PRAGMA journal_mode=WAL;    -- 启用 WAL 模式
    PRAGMA synchronous=NORMAL;  -- 平衡性能与安全
    PRAGMA foreign_keys=ON;     -- 启用外键约束
  3. 事务控制

    BEGIN TRANSACTION;
    UPDATE accounts SET balance = balance - 100 WHERE id=1;
    UPDATE accounts SETChina编程 balance = balance + 100编程 WHERE id=2;
    COMMIT;  -- 或 ROLLBACK

八、快捷示例场景

场景 1:从 CSV 创建新表并导入

sqlite3 finance.db  # 创建数据库
-- 创建表
CREATE TABLE transactions (
    id INTEGER PRIMARY KEY,
    date TEXT,
    amount REAL,
    description TEXT
);
-- 导入 CSV
.mode csv
.import transactions.csv transactions
-- 验证数据
SELECT count(*) FROM transactions;

场景 2:备份与恢复

# 完整备份
sqlite3 production.db ".backup main backup_20231001.db"
# 恢复数据库
sqlite3 restored.db ".restore main backup_20231001.db"

九、注意事项

  1. 命令分类

    • 点命令 (.):以 . 开头(如 .tables),不需分号结尾
    • SQL 语句:标准 SQL(SELECT, CREATE 等),必须用分号 ; 结尾
  2. 特殊字符转义
    在字符串中使用单引号时需转义:

    INSERT INTO logs (message) VALUES ('It''s a test');
  3. 资源限制
    查看限制:PRAGMA compile_options;
    常见限制:SQLITE_MAX_LENGTH=1,000,000,000 (字符串/Blob最大长度)

掌握这些命令后,您可通过 sqlite3 CLI 高效完成日常数据库管理任务!

到此这篇关于sqlite3 命令行工具使用指南的文章就介绍到这了,更多相关sqlite3 命令行工具内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!

这篇关于sqlite3 命令行工具使用指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155215

相关文章

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo