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

相关推荐
Nu114 分钟前
weakMap 和 weakSet 原理
前端·面试
顾林海6 分钟前
深入理解 Dart 函数:从基础到高阶应用
android·前端·flutter
比特鹰10 分钟前
桌面端跨端框架调研
前端·javascript·前端框架
Ratten11 分钟前
【JavaScript】---- JS原生的深拷贝API structuredClone 使用详解与注意事项
前端·javascript
DarisX11 分钟前
JupyterLab前端二开基础上手指南
前端
ZZZzh11 分钟前
前端开发浏览器调试方法
前端
shmily_yy12 分钟前
Ts支持哪些类型和类型运算(上)
前端
Epicurus13 分钟前
JavaScript如何删除属性及其值
前端·javascript
JinSo13 分钟前
国际化探索:颗粒化方案
前端·javascript·设计模式