Skip to main content
CheckTown
数据工具

SQL 转 CSV 转换器:从 SQL 转储中提取数据

发布于 阅读约 5 分钟
本文目录

为什么要将 SQL 转换为 CSV?

数据库导出生成的 SQL 转储文件包含 INSERT 语句,你的数据以 SQL 语法的形式嵌入其中。这种格式虽然便于恢复数据库,却很难在电子表格程序中打开、接入数据分析流程,或导入到不同的数据库系统。将 SQL 转换为 CSV,可以把原始数据提取到一种扁平、通用的格式中。

CSV 文件可以在 Excel、Google Sheets、LibreOffice 以及任何数据分析工具中打开。它也是大多数数据库、CRM 和业务应用程序的标准导入格式。把 SQL 转储转换为 CSV,能让你的数据变得可移植、易访问,而无需运行一台数据库服务器。

解析器的工作原理

该转换器会解析 SQL INSERT 语句,并把其中的值提取为结构化的行和列。

  • 语句识别 —— 识别出 INSERT INTO 语句,并提取目标表名和可选的列清单
  • 值提取 —— 解析 VALUES 子句,正确处理带引号的字符串、数字、NULL 值和转义字符
  • CSV 生成 —— 将提取出的值映射到各列,并输出为格式正确、经过转义的 CSV,表头来自列清单或自动生成的列名

免费试用 —— 无需注册

将 SQL 转换为 CSV →

处理 SQL 导出文件

SQL 转储文件来自各种数据库工具,本转换器可处理主流数据库系统常见的导出格式。

  • phpMyAdmin 导出 —— MySQL 数据库最常见的 SQL 转储来源,通常采用扩展 INSERT 语法,每条语句包含多行数值
  • pg_dump 输出 —— PostgreSQL 导出文件,可能包含架构定义、序列,以及带显式列清单的 INSERT 语句
  • MySQL Workbench —— 导出内容可能包括 CREATE TABLE 语句、触发器,以及标准 MySQL 语法的 INSERT 语句
  • 手写 SQL 文件 —— 用于填充数据或迁移的、手动编写或脚本生成的 INSERT 语句

常见问题

支持哪些 SQL 方言?

该解析器可处理 MySQL、PostgreSQL、SQLite 和 MariaDB 所使用的标准 INSERT INTO 语法。它同时支持单行和多行 INSERT 语句,以及反引号标识符(MySQL 风格)、双引号标识符(PostgreSQL/标准 SQL)和方括号标识符(SQL Server)。CREATE TABLE 及其他 DDL 语句会被忽略。

CSV 输出中如何处理 NULL 值?

SQL 的 NULL 值会在 CSV 输出中转换为空单元格。这是在 CSV 文件中表示缺失数据的标准惯例。如果你需要在输出中保留字面上的字符串 NULL,则原始 SQL 值必须以字符串形式加引号('NULL'),而不是使用 SQL 关键字 NULL。

它能处理大型 SQL 转储文件吗?

该工具在浏览器中处理文件,因此性能取决于可用内存。50 MB 以内的文件通常都能顺利处理。对于包含数百万行的超大转储,建议先拆分 SQL 文件,或使用 awk 等命令行工具先提取出特定的表再进行转换。

字符编码方面如何处理?

该转换器会遵循输入文件的编码。SQL 转储通常采用 UTF-8 编码。如果你的转储使用了 latin1 或 Windows-1252 等其他编码,请先用文本编辑器或 iconv 命令行工具将其转换为 UTF-8,以确保特殊字符能被正确保留。

相关工具