CSV 转 SQL 转换器

将 CSV 转换为 SQL INSERT 语句和可选的 CREATE TABLE,支持 MySQL、PostgreSQL、SQLite 或 SQL Server,并识别数字和布尔值。免费。

完全在浏览器中运行,您的数据不会被上传。

相关工具

查看全部

什么是 CSV 转 SQL?

将带表头行的 CSV 数据转换为 SQL 语句:带推断列类型的 CREATE TABLE,以及针对每一行的 INSERT 语句,并按 MySQL、PostgreSQL、SQLite 或 SQL Server 加引号并转义。

如何使用 CSV 转 SQL

  1. 将 CSV 粘贴到 CSV 输入框中,或使用加载示例或打开文件。
  2. 选择分隔符、 SQL 方言和表名。
  3. 切换识别数字和布尔值、包含 CREATE TABLE和多行 INSERT。
  4. SQL 输出会随你的输入实时更新;可使用复制或下载。

示例

输入
id,name
1,Ada
2,Bob
输出
CREATE TABLE `my_table` (
  `id` INT,
  `name` VARCHAR(255)
);

INSERT INTO `my_table` (`id`, `name`) VALUES
  (1, 'Ada'),
  (2, 'Bob');

何时使用 CSV 转 SQL

适用于无法使用数据库原生 CSV 加载器(LOAD DATA、COPY、BULK INSERT)的一次性导入。对于数百万行的数据,这些原生加载器要快得多。

CSV 转 SQL 的工作原理

CSV 由 PapaParse 解析,以第一行作为列名。启用类型检测时,只有当单元格是不带前导零的普通整数或小数时才会变成数字(所以 007 保持为文本),true/false 变为布尔值,空单元格变为 NULL。随后会应用与 JSON 转 SQL 工具相同的类型推断、标识符引用和字符串转义。

常见用例

  • 把电子表格导出的数据导入开发数据库
  • 在代码评审中根据 CSV 创建种子 SQL
  • 把参考数据(国家、代码)加载到 SQLite 中
  • 以 SQL 的形式与没有 CSV 工具的人共享数据

常见问题

前导零会保留吗?

会,即使开启了类型检测,007 或 01234 这样的值也会保持为字符串。

如果我的 CSV 没有表头怎么办?

列名需要表头行;转换前请先添加一行。

空单元格是如何写出的?

开启类型检测时写成 NULL,关闭时写成空字符串。

探索更多分类