需要熟练的 SQLite 备份/还原-导出/导入操作与总结

一、动机

SQLite 数据的备份-导入-导出等操作是除去 CURD,数据库的基本操作,我们需要熟练操作并掌握这些技能,高效的完成技能。SQLite 数据库在本使用特别方便,值得前后端开发都学习。

本文适合对 SQLite 不熟悉,或者对这一块内容不成系统的同学学习。主要讲解的内容包含:备份/导出/导入/脚本 等。并且基于单个文件 xxx.db 文件。

二、SQLite 数据库的优点

  • 免费开源
  • 0 配置
  • 无服务器
  • 轻量级
  • 支持事务

三、 安装

🚀sqlite🚀 根据自己的需求下载并安装,正确安装之后你就会得到一个 sqlite 或者 sqlite3 的命令。

sh 复制代码
sqlite3

# 输出内容,默认在内容保存,可以通过 .open xxxx.db 打开文件
SQLite version 3.43.1 2023-09-11 12:01:27
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>

四、开始之前

命令 作用
.tables 显示当前数据库中的所有表格名称。
.show 显示当前设置的参数和设置。
.mode 设置输出模式,分别以 JSON、CSV 或 SQL 格式显示查询结果。
.table_info 显示指定表格的列信息,包括列名、数据类型和约束信息。
.backup 将整个数据库备份到指定文件中。
.dump 将整个数据库导出为 SQL 脚本。
.output 将输出重定向到指定文件中。
.schema 显示指定表格的创建 SQL 语句,包括表格的结构和约束。

五、备份

备份命令

sh 复制代码
sqlite3 your_database.db ".backup backup_file.db"

# 不要进入 sqlite3 的交互式环境直接在命令输出示例:
sqlite3 ./dev.db ".backup backup.db"

# 还原 db 文件直接复制即可

# sql
sqlite3 your_database.db .dump > backup_file.sql

# 从 sql 还原
sqlite3 new_database.db < backup_file.sql

备份分为两种模式,第一个是 db 文件,使用 .backup 指定备份文件 backup_file.db, 第二章中式 sql,备份 sql 文件需要 .dump 来完成。还原方式页不要不一样。

复制数据库文件

在拷贝数据数据库时,数据库没有被使用。此方法是系统级的方法。

定时备份

如果在服务器中,可以设置定时任务,定期执行脚本(cron) 定时操作数据库。此处只是提出方案。

六、导出

导出 SQL 文件

sh 复制代码
# cd your db dir
.output output_filename.sql
.dump
.output stdout

特点:能够输出所有的 sql 文件。

导出 csv 文件

sh 复制代码
.mode csv # 指定模式
.output output_filename.csv # 输出的文件,没有会创建一个文件
SELECT * FROM your_table_name; # 指定你的数据库名,同时注意此处有分号
.output stdout # 输出内容

导出 csv 文件需要使用 SQL 语句配合 .mode/.output 命令。不能直接输出一个 db 里面的所有数据。当然你也可以使用编程语言 Node.js/python 等,查询对应的数据,然后输出 csv 使用编程语言,更加灵活。

导出 json 文件

sh 复制代码
.mode json
.output output_filename.json
SELECT * FROM your_table_name;
.output stdout

导出 json 与导出 csv 基本相同。指定模式是 json, 指定输出的 json 文件。

自定义导出

以输出 txt 文件为例,指出需要输出的文件名 output_filename.txt 和 sql 查询语句。

ts 复制代码
.output output_filename.txt
SELECT column1 || ', ' || column2 AS custom_format FROM your_table_name;
.output stdout

导出 excel

SQLite 不支持直接导出 excel 文件,可以使用工具转化。

七、导入

  • 默认支持:SQL 和 CSV 两种文件格式。

CSV

sh 复制代码
.mode csv
.import data.csv your_table_name

SQL

sh 复制代码
.read data.sql

使用编程语言

使用 python 和 node.js 链接到数据库,然后执行 SQL insert 语句来插入数据。

八、小结

SQLite 数据库实用性非常强,在习了 CURD 能力之后,对数据的 备份/还原 和对数据的导出/导入 就有了需求。SQLite 可以定义为全栈开发者的第一个数据库,不需要数据库服务器,一个文件即可搞定。本文主要讲解是 SQLite 备份、导入和导出的操作方式,希望这些总结能够帮助阅读者。

相关推荐
繁依Fanyi43 分钟前
ImgShrink:摄影暗房里的在线图片压缩工具开发记
开发语言·前端·codebuddy首席试玩官
卓律涤1 小时前
【找工作系列①】【大四毕业】【复习】巩固JavaScript,了解ES6。
开发语言·前端·javascript·笔记·程序人生·职场和发展·es6
Ten peaches1 小时前
Selenium-Java版(环境安装)
java·前端·selenium·自动化
心.c2 小时前
vue3大事件项目
前端·javascript·vue.js
姜 萌@cnblogs2 小时前
【实战】深入浅出 Rust 并发:RwLock 与 Mutex 在 Tauri 项目中的实践
前端·ai·rust·tauri
Code哈哈笑2 小时前
【基于Spring Boot 的图书购买系统】深度讲解 用户注册的前后端交互,Mapper操作MySQL数据库进行用户持久化
数据库·spring boot·后端·mysql·mybatis·交互
蓝天白云下遛狗2 小时前
google-Chrome常用插件
前端·chrome
Javatutouhouduan2 小时前
线上问题排查:JVM OOM问题如何排查和解决
java·jvm·数据库·后端·程序员·架构师·oom
多多*2 小时前
Spring之Bean的初始化 Bean的生命周期 全站式解析
java·开发语言·前端·数据库·后端·spring·servlet
linweidong3 小时前
在企业级应用中,你如何构建一个全面的前端测试策略,包括单元测试、集成测试、端到端测试
前端·selenium·单元测试·集成测试·前端面试·mocha·前端面经