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

相关推荐
莹雨潇潇8 分钟前
Docker 快速入门(Ubuntu版)
java·前端·docker·容器
Jiaberrr16 分钟前
Element UI教程:如何将Radio单选框的圆框改为方框
前端·javascript·vue.js·ui·elementui
杨哥带你写代码26 分钟前
足球青训俱乐部管理:Spring Boot技术驱动
java·spring boot·后端
Tiffany_Ho1 小时前
【TypeScript】知识点梳理(三)
前端·typescript
A尘埃1 小时前
SpringBoot的数据访问
java·spring boot·后端
yang-23071 小时前
端口冲突的解决方案以及SpringBoot自动检测可用端口demo
java·spring boot·后端
Marst Code1 小时前
(Django)初步使用
后端·python·django
代码之光_19801 小时前
SpringBoot校园资料分享平台:设计与实现
java·spring boot·后端
编程老船长1 小时前
第26章 Java操作Mongodb实现数据持久化
数据库·后端·mongodb
IT果果日记2 小时前
DataX+Crontab实现多任务顺序定时同步
后端