跳到主内容
UniKit

SQL结果转CSV

把 SQL 里的 INSERT 语句还原成 CSV 表格:支持多行 VALUES、列名列表、NULL、字符串转义与反引号 / 双引号 / 方括号标识符。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

转换设置

只解析 INSERT 语句:支持多行 VALUES、列名列表、NULL、单引号转义、反引号 / 双引号 / 方括号标识符与函数调用,其它语句会被忽略。

CSV 结果

这个工具能做什么

  • 把数据库导出脚本(mysqldump、pg_dump 的 INSERT 部分)还原成 CSV,方便在 Excel 里核对数据或交给非技术同事。
  • 从备份文件里捞回几行被误删的记录:粘贴相关 INSERT 语句,直接得到可以重新导入的表格。
  • 做数据迁移前的比对:把新旧两套 INSERT 都转成 CSV,用文本比对工具逐行对照。
  • 把测试固件里的 SQL 种子数据转成 CSV,交给写用例的同事当输入样例。

示例

输入

INSERT INTO users (id, name, active) VALUES (1, 'Ada', TRUE), (2, 'O''Brien', FALSE);

输出

id,name,active
1,Ada,TRUE
2,O'Brien,FALSE

列名取自 INSERT 的列名列表;NULL 默认写成空单元格,可以改成任意占位文本。

常见问题

支持哪些 SQL 写法?

支持 INSERT INTO 表 (列…) VALUES (…), (…) 以及省略列名的写法,字面量可以是字符串、数字、NULL、TRUE / FALSE、函数调用(如 NOW())与 :: 类型转换。SELECT、CREATE TABLE 等其它语句会被跳过。

字符串里的转义怎么还原?

两种写法都认:SQL 标准的单引号翻倍('')和 MySQL 的反斜杠转义(\')。还原后如果单元格里出现逗号、双引号或换行,输出 CSV 时会自动加引号并把双引号翻倍。

表名和列名被反引号或双引号包着,会有影响吗?

不会。反引号(MySQL)、双引号(标准 SQL / PostgreSQL / SQLite)和方括号(SQL Server 风格)都会被识别为标识符引用符并去掉,取到的就是真实名字。

多条 INSERT 的列名不一致怎么办?

列名取所有语句列名列表的并集,按首次出现的顺序排列;某条语句没写列名时按位置对齐,缺的单元格留空。列数与列名数量对不上时会给出带行号的提示。

输出的 CSV 会带 BOM 吗?

默认不带。如果要用 Excel 打开含中文的文件,勾选「加 UTF-8 BOM」,Excel 就不会把中文显示成乱码。

关键词:sql to csvinsert to csvextract datasql parsermysql dumppostgresqlSQL转CSV导出表格INSERT 解析数据提取

同类工具