UltKit

CSV转SQL转换器

把表格导出的CSV变成数据库可以直接执行的脚本。表头行作为列名,每一行生成一条INSERT语句,引号和转义规则按你选择的SQL方言处理。

数据转换器

或将CSV, TSV, TXT … 文件拖放到此处 ·

单个文件最大 95 MB· 最多 20 个文件· 30 分钟后删除

输出

文件在我们的服务器上处理,并在 30 分钟后删除。

使用方法

  1. 1

    上传CSV文件

    添加 1 个或最多 20 个 CSV 文件,每个不超过 95 MB。分号分隔和制表符分隔的文件会被自动识别。

  2. 2

    设置表名和方言

    在高级设置下,输入 SQL 表名并选择 SQL 方言:MySQL、PostgreSQL、SQLite 或 SQL Server。日期默认设为 ISO,日期字面量无需猜测即可导入。

  3. 3

    转换并执行

    点击转换为 SQL,查看 CREATE TABLE 语句,然后在数据库客户端或导入界面中运行该脚本。

CSV 转 SQL 会根据表头行生成 CREATE TABLE 语句,并为每行数据生成一条 INSERT,按 MySQL、PostgreSQL、SQLite 或 SQL Server 的规则加引号,运行一个脚本即可把电子表格导入数据库。

为什么要把CSV转成SQL INSERT语句

每种数据库都有快速的 CSV 导入工具,但每种都有限制。自 MySQL 8.0 起,服务器默认禁用 LOAD DATA LOCAL INFILE;PostgreSQL 中从文件 COPY FROM 需要超级用户权限或特定角色成员身份;SQL Server 的 BULK INSERT 读取的是服务器本机上的路径,而不是你的笔记本电脑。托管数据库往往只提供一个查询编辑器。

INSERT 脚本可以绕开这些问题。它是文本,可以阅读,可以作为初始数据提交到版本控制,并能在任何客户端中运行。代价是速度:几万行没有问题,而数百万行更适合用原生批量导入工具。如果参考数据保存在工作簿中,可以用 Excel 转 SQL 跳过 CSV 这一步。

CSV转SQL示例(MySQL)

由 id,name,joined 和两行数据生成的脚本
CREATE TABLE `my_table` (
  `id` INT,
  `name` VARCHAR(255),
  `joined` DATE
);

INSERT INTO `my_table` (`id`, `name`, `joined`) VALUES
(1, '王芳', '2026-03-02'),
(2, 'Liam O''Brien', '2026-04-15');

四种SQL方言在输出上的区别

标识符用反引号包裹,如 order date,这也让 order 之类的保留字可以用作列名。

  • 同样适用于 MariaDB
  • 适合作为 phpMyAdmin 导入的默认选择
影响生成脚本的数据库限制
机构要求来源
MySQL 8.0max_allowed_packet 默认为 64 MB;超过该大小的单条语句会被拒绝—
SQL Server一条 INSERT … VALUES 列表最多接受 1,000 个行值表达式—
PostgreSQL超过 63 字节的标识符会被静默截断—
SQLite默认构建下一张表最多有 2,000 列—

执行脚本前请检查这些事项

先看 CREATE TABLE 语句。列类型是根据值推测的,推测可能出错:邮政编码和电话号码看起来像数字,但必须保持为文本,否则 02134 会丢掉开头的 0。运行前请在脚本中修改类型,或者自己建表,只运行 INSERT 部分。

请在 SQL 表名中填入真实表名,而不是 my_table;如果客户端支持,请在事务中运行脚本,这样某一行出错时可以全部回滚。同一个 CSV 的其他转换目标见数据格式转换页面。

CSV与SQL脚本格式

CSV

逗号分隔值

CSV 是一种用于表格的纯文本格式,每一行是一条记录,列之间用逗号分隔。它从计算机早期就开始使用,RFC 4180 对其作了说明,不过许多变体使用分号或制表符,文本编码也各不相同。几乎所有电子表格、数据库和分析工具都能导入和导出 CSV,因此它是在系统之间传输数据的默认格式。CSV 只保存数值,不包含公式、格式、多个工作表或数据类型。

压缩方式
–
透明度
–
动画
–
发布年份
–
CSV 转换器

SQL

SQL 脚本

SQL 文件是由结构化查询语言语句(如 CREATE TABLE 和 INSERT)组成的纯文本脚本,数据库会按顺序执行。常用于数据库备份、迁移和共享示例数据。该语言本身是 ISO 标准,但 MySQL、PostgreSQL、SQLite 和 SQL Server 各有自己的方言,因此脚本在不同系统之间通常需要小幅修改。任何文本编辑器都能打开 SQL 文件,执行则需要数据库客户端。

压缩方式
–
透明度
–
动画
–
发布年份
–
SQL 转换器

当文件最终要变成数据库中的一张表,而你只能通过查询窗口访问数据库时,就需要把 CSV 转成 SQL:例如为新应用写入初始数据、导入参考列表,或在没有服务器权限的情况下把电子表格迁入 MySQL 或 PostgreSQL。

CSV转SQL常见问题

为什么用SQL文件,而不是LOAD DATA或COPY?

MySQL 的 LOAD DATA INFILE、PostgreSQL 的 COPY 等批量导入工具速度更快,但需要访问服务器上的文件,或额外设置客户端参数。普通脚本只要能粘贴 SQL 的地方都能运行:云数据库控制台、phpMyAdmin,或经过审核的迁移脚本。

O'Brien这类带撇号的名字怎么写入?

在 SQL 字符串中,单引号通过连写两个来转义,因此该值会写成 'O''Brien'。四种方言都支持这种写法,所以带撇号的姓名不会导致 INSERT 出错。

CSV表头在表里会变成什么?

列名,并按所选方言要求的方式加引号。像 Unit Price 这样的表头可以使用,但带空格的加引号名称在之后每条查询中也都必须加引号,所以如果可以,建议转换前先把这类表头改成 unit_price。

能用phpMyAdmin导入生成的SQL文件吗?

可以,在“导入”选项卡中操作。那里的上限是 PHP 的 upload_max_filesize,默认 php.ini 中为 2 MB;许多主机会调高该值,页面会显示当前限制。如果脚本比这个限制大,请把大 CSV 拆分成多个文件。

能把数据表再导回CSV吗?

把表导出为转储文件,再用 SQL 转 CSV 转换,或使用数据库客户端自带的 CSV 导出功能。两种方式得到的数据行都可以再次用电子表格打开。