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 解析数据提取