JSON 转 SQL 转换器

将 JSON 转换为 SQL INSERT 语句和可选的 CREATE TABLE,支持 MySQL、PostgreSQL、SQLite 或 SQL Server,引号和转义均正确。免费。

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

相关工具

查看全部

什么是 JSON 转 SQL?

将对象的 JSON 数组转换为 SQL:先是带推断列类型的可选 CREATE TABLE,再是 INSERT 语句。标识符和字符串会按你选择的方言加引号并转义。

如何使用 JSON 转 SQL

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

示例

输入
[{"id":1,"name":"O'Brien"}]
输出
CREATE TABLE `my_table` (
  `id` INT,
  `name` VARCHAR(255)
);

INSERT INTO `my_table` (`id`, `name`) VALUES
  (1, 'O''Brien');

何时使用 JSON 转 SQL

适合用 JSON 导出内容、测试数据或 API 数据为数据库填充种子数据。请检查生成的列类型,并自行添加主键、NOT NULL 和索引——这些无法从示例数据中推断出来。

JSON 转 SQL 的工作原理

列是所有对象键的并集。每列的类型根据其非空值推断:整数 → INT/INTEGER(超过 32 位时为 BIGINT),小数 → DOUBLE / DOUBLE PRECISION / REAL / FLOAT,布尔值 → BOOLEAN(SQL Server 中为 BIT,SQLite 中为 INTEGER),字符串 → 根据长度为 VARCHAR(255) 或 TEXT/NVARCHAR(MAX),嵌套对象/数组 → JSON/JSONB 或文本。标识符使用反引号(MySQL)、双引号(PostgreSQL、SQLite)或方括号(SQL Server)。字符串会把单引号重复一次;MySQL 还会转义反斜杠,SQL Server 对非 ASCII 文本使用 N'…'。对于 SQL Server,多行插入会按 1000 行为一块拆分。

常见用例

  • 用 JSON 测试数据为开发数据库填充种子数据
  • 把 API 数据导入 PostgreSQL
  • 根据 JSON 快速创建 SQLite 表用于分析
  • 为迁移脚本生成 INSERT 语句

常见问题

生成的 SQL 能防止注入吗?

所有字符串值都已按所选方言转义,但在对生产数据运行之前,请务必检查生成的 SQL。

嵌套对象是如何存储的?

以 JSON 文本的形式存放在 JSON(MySQL)、JSONB(PostgreSQL)或文本列中。

为什么 SQL Server 的输出有多条 INSERT 语句?

SQL Server 在一个 VALUES 列表中最多允许 1000 行,因此较大的输入会被拆分。

推荐的下一步

探索更多分类