对比
SQLite 与 CSV
SQLite 是保存表、索引和模式的关系数据库文件。CSV 是交换行列值的文本格式,本身不保存数据库关系或约束。
应该选择哪种格式?
需要 SQL 查询、多张表、索引、约束和事务时使用 SQLite;向其他应用交付一张表时可导出为 CSV。明确导出的表、列名和类型、NULL 与空文本、编码、前导零、日期和引号规则,并另行记录 CSV 无法承载的结构。
适用于 SQLite 数据库
SQLite 应用的本地数据存储 · 桌面和移动应用中的嵌入式数据库
- 无需单独运行数据库服务器即可使用 SQL
- 将应用数据保存在便于携带的文件中
适用于 CSV
表格数据交换
- 在应用间传递一个简单表格
基本信息
| 项目 | SQLite 数据库 | CSV |
|---|---|---|
| 扩展名 | .sqlite, .sqlite3, .db | .csv |
| MIME 类型 | text/csv | |
| 常见用途 | SQLite 应用的本地数据存储 · 桌面和移动应用中的嵌入式数据库 | 表格数据交换 |
| 打开方式 | 运行期间只复制主文件可能导致备份不一致 | 导入电子表格时请设置字符编码和分隔符。检查前导零、类似日期的值和长数字不会被自动转换。 |
| 导出或转换 | 使用 SQLite 数据库工具或 sqlite3 打开。不要用文本编辑器修改二进制文件;一致性备份请使用 SQLite 备份功能。 | 将XLSX导出为CSV通常只写出一个选定工作表的值。请另行保留公式、格式、其他工作表和图表。 |
按用途选择
无需单独运行数据库服务器即可使用 SQL
SQLite 应用的本地数据存储 · 桌面和移动应用中的嵌入式数据库
SQLite 数据库将应用数据保存在便于携带的文件中
SQLite 应用的本地数据存储 · 桌面和移动应用中的嵌入式数据库
SQLite 数据库在应用间传递一个简单表格
表格数据交换
CSV关键点 1
SQLite 文件可保存 SQL 表行、模式、索引、视图和触发器。CSV 通常是带可选表头的文本记录,不表达表间关系、索引或约束。
进一步了解差异关键点 2
SQLite 支持 SQL 查询、连接、更新、约束和事务。CSV 需要应用解析,列类型及 NULL 的含义需另行约定。
进一步了解差异进一步了解差异
数据库行为或结构重要时保留 SQLite;需要可移植的单表交换时导出 CSV。备份 SQLite 时使用一致性备份机制,不要随意复制正在使用的数据库文件。
- CSV 导出通常只包含选定表的值,不包含索引、约束、视图、触发器或多表关系。
- 复制 SQLite 文件时要考虑 WAL 或 journal 状态,并采用能得到一致数据库的备份方法。
常见问题
导出 SQLite 为 CSV 会保留整个数据库吗?
不会。它通常只导出所选表的表格值;普通 CSV 不携带模式行为、索引、触发器或表间关系。