CSV转SQL
把 CSV / TSV 表格转换成 SQL INSERT 语句:自研 RFC 4180 解析、支持自定义分隔符与首行表头,可生成建表语句并适配 MySQL / PostgreSQL / SQLite。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
转换设置
解析器按 RFC 4180 自研:引号包裹、字段内换行、双引号转义("")、CRLF / LF 都支持。
生成结果
这个工具能做什么
- 把 Excel / Numbers 导出的 CSV、日志表格一次性变成 INSERT 语句,不用手工补引号和逗号。
- 从「字段名、类型、样例数据」三件套直接生成建表脚本:勾选生成 CREATE TABLE 会按每列取值推断类型。
- 处理欧洲风格的表格(分号分隔、字段里带逗号或换行)时,自动识别分隔符与 RFC 4180 解析能省掉大量清洗工作。
- 需要给 MySQL、PostgreSQL、SQLite 分别出脚本时,切换方言即可换掉标识符引用与转义规则。
示例
输入
id,name,note 1,Ada,"Beijing, CN" 2,Bob,Shanghai
输出
INSERT INTO `people` (`id`, `name`, `note`) VALUES (1, 'Ada', 'Beijing, CN'), (2, 'Bob', 'Shanghai');
带逗号的单元格先由 RFC 4180 解析去掉外层引号,再作为完整字符串写进 SQL。
常见问题
字段里有逗号、换行或双引号怎么办?
按 RFC 4180 用双引号把整个字段包起来:内部的双引号写成两个(""),换行可以原样保留在引号内。解析器会把这些内容还原成单个字段值,再按 SQL 规则转义。
数字和布尔值会不会被当成字符串?
默认开启无损类型推断:只有能原样还原的文本才当数字(1、-2.5 是数字,007、1.50 保持字符串),true / false 变成 TRUE / FALSE。想要全部按文本处理,取消勾选「类型推断」即可。
空单元格写 NULL 还是空字符串?
默认写 NULL,这是导入数据时最省事的选择;如果空串在你的业务里有意义,取消勾选「空单元格写 NULL」,空单元格会写成 ''。
某一行少了几列会怎样?
页面会给出带行号的提示:多出来的列丢弃,缺少的列按空值处理(即 NULL)。这样不会因为一行格式错误就中断整个转换,但建议先修好数据再导入。
首行不是表头怎么办?
取消勾选「首行是表头」,列名会按位置生成 column1、column2……,首行内容会被当成第一行数据。如果表头里有重名列,会自动加上 _2、_3 后缀,避免生成的 SQL 里出现重复列名。
关键词:csv to sqlcsv insertsql generatorcreate tablerfc 4180mysqlpostgresqlsqliteCSV转SQL生成 INSERT表格导入分隔符