需要熟练的 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 备份、导入和导出的操作方式,希望这些总结能够帮助阅读者。

相关推荐
￰meteor1 分钟前
23种设计模式 -【工厂方法】
后端
humors2212 分钟前
Deepseek工具:H5+Vue 项目转微信小程序报告生成工具
前端·vue.js·微信小程序·h5·工具·报告
方安乐3 分钟前
ESLint代码规范(二)
前端·javascript·代码规范
zzginfo9 分钟前
var、let、const、无申明 四种变量在赋值前,使用的情况
开发语言·前端·javascript
贺小涛12 分钟前
Vue介绍
前端·javascript·vue.js
cch891836 分钟前
React Hooks的支持
前端·javascript·react.js
bjzhang7541 分钟前
SpringCloud——国产化改造,项目对接 TongWeb 嵌入版
后端·spring·spring cloud
光影少年1 小时前
平时如何学习新技术?
后端·学习·前端框架
鹏程十八少1 小时前
9. Android Shadow插件化如何解决资源冲突问题和实现tinker热修复资源(源码分析4)
android·前端·面试