无需登录 数据私有 本地保存

SQL建表语句生成器 - DDL从JSON自动生成

15
0
0
0

SQL DDL 生成器

从 JSON 数据自动生成 SQL 建表语句,支持 MySQL / PostgreSQL / SQLite / SQL Server

JSON 输入 就绪
生成的 DDL
-- 请点击【生成】按钮或加载示例数据
已复制到剪贴板

常见问题与知识点

什么是 DDL?为什么需要从 JSON 生成 DDL?
DDL(Data Definition Language) 即数据定义语言,是 SQL 中用于定义数据库结构的语句,主要包括 CREATEALTERDROP 等。在实际开发中,当我们拿到一份 JSON 格式的样例数据(如API响应、数据导入文件)后,往往需要快速创建对应的数据库表。手工编写建表语句耗时且容易出错,本工具通过智能分析 JSON 数据的结构和内容,自动推断字段类型并生成标准 DDL,大幅提升开发效率。
支持哪些数据库的 DDL 方言?
目前支持四种主流数据库的 DDL 生成:
MySQL — 使用 AUTO_INCREMENTCOMMENTENGINE=InnoDB 等语法;
PostgreSQL — 使用 SERIALTIMESTAMPJSONB 类型,注释采用 COMMENT ON 语句;
SQLite — 使用 AUTOINCREMENTTEXT 类型,兼容轻量级场景;
SQL Server — 使用 IDENTITY(1,1)NVARCHARDATETIME2 等 T-SQL 语法。
嵌套的 JSON 对象是如何处理的?
本工具提供三种嵌套对象处理模式:
展开扁平化(默认) — 将嵌套对象的字段提取到主表,使用下划线连接路径,例如 address.cityaddress_city
存储为JSON — 将整个嵌套对象作为一个 JSON / JSONB 字段存储;
跳过 — 忽略嵌套对象字段,不生成对应列。您可以根据业务需求在顶部选项栏中切换。
数据类型是如何自动推断的?VARCHAR 长度怎么确定?
工具会遍历 JSON 中每个字段的所有样本值(支持数组输入),进行智能推断:
字符串 → 检测是否为日期格式(ISO 8601 / YYYY-MM-DD / YYYY-MM-DD HH:MM:SS),是则映射为 DATEDATETIME,否则根据最大长度映射为 VARCHAR(50~4000)TEXT
数字 → 整数映射为 INT / BIGINT,浮点数映射为 DECIMAL
布尔值BOOLEAN / TINYINT(1)
null → 默认 VARCHAR(255) 并添加注释提示。
生成的 DDL 可以直接在数据库中执行吗?
是的,生成的 DDL 语句遵循各数据库的标准语法,可以直接复制到数据库客户端中执行。工具会自动添加自增主键 id,并可选择添加 created_at / updated_at 时间戳字段。建议在执行前根据实际业务需求微调字段类型和约束条件。对于生产环境,建议在测试库中先行验证。
JSON 数组输入时如何推断表结构?
当输入为 JSON 数组时,工具会遍历数组中的所有对象元素,合并所有出现的字段,并基于所有样本值进行类型推断。如果数组中某字段在不同元素间类型不一致(如既有数字又有字符串),工具会采用更宽松的类型(如 VARCHAR)以确保兼容性。建议数组至少包含 1 个元素,元素越多推断越准确。