⌘K 切换工具
FORMAT & CONVERT

CSV → SQL 转换工具

从CSV数据生成SQL INSERT语句。

local
csv-sql

Identifiers and values are quoted for the selected dialect. Backslashes are escape characters in MySQL but literal in standard SQL, so picking the wrong dialect can corrupt data — review the output before running it.

§01 关于此工具

概述

这个工具把 CSV 数据转成每行一条 INSERT 语句——给开发数据库灌种子数据、迁移一份表格导出、搭一批测试夹具,都不用再专门写个脚本。列名取自 CSV 的表头行;没有表头时,会自动命名为 col1col2 这样的序号列。

使用方法

  1. Table 里填目标表名。
  2. 如果 CSV 的第一行是列名,勾选 First row is header;取消勾选则把每一行都当成数据。
  3. 把数据粘贴到 CSV 区域——SQL 输出会随输入重新生成。

示例

  • 输入 id,name,active / 1,Alice,trueINSERT INTO `my_table` (`id`, `name`, `active`) VALUES (1, 'Alice', 'true');
  • O'Brien 这样的字段会被转义成 'O''Brien';空字段变成 NULL

说明

生成器只输出 INSERT 语句——建表要你自己先做好。true/false 这类布尔字面量会被当成字符串处理,数字则是按模式(-?digits[.digits])识别出来的,所以在真实库表上执行之前,先把输出通读一遍:一列本该是字符串的编号,如果全是数字,就会变成不带引号的数值。表名和列名用反引号包裹,这是 MySQL/MariaDB 的写法;目标是 PostgreSQL 或 SQL Server 时,要把反引号换成双引号或方括号。

FAQ
我的 CSV 数据会被上传到哪里吗?
不会。解析和 SQL 生成都在浏览器里完成,不向服务器发送任何内容,所以内部数据或涉密数据也可以放心用。
生成的 SQL 里,取值是怎么加引号的?
纯数字的值(整数和小数)不加引号直接输出,空字段变成 NULL,其余一律用单引号包起来,其中原本就有的单引号通过重复一次来转义。
输出针对的是哪种 SQL 方言?
表名和列名用反引号包裹,这是 MySQL/MariaDB 的写法。目标是 PostgreSQL 或 SQL Server 的话,把反引号换成双引号或方括号。