Saltar al contenido

JSON a SQL CREATE TABLE

Convierte un objeto JSON o un array de objetos JSON en una sentencia SQL CREATE TABLE.

Entrada
Salida

JSON a SQL CREATE TABLE

Pega un objeto JSON o un array de objetos JSON y esta herramienta genera una sentencia SQL CREATE TABLE lista para ejecutar — apúntala a una respuesta de API de ejemplo o a un registro exportado y obtén un esquema inicial en lugar de escribir cada columna a mano.

Los tipos de columna se infieren a partir de los valores reales: los números enteros se convierten en INTEGER, los números con parte decimal se convierten en DECIMAL, verdadero/falso se convierte en BOOLEAN, las cadenas con formato 2024-01-15 o 2024-01-15T10:30:00Z se convierten en DATE o TIMESTAMP, y todo lo demás se convierte en VARCHAR con una longitud estimada, o TEXT para más de 255 caracteres. Un campo marcado como NOT NULL es uno que está presente y nunca es nulo en cada registro pegado; un campo llamado id se convierte en PRIMARY KEY. Elige un dialecto —ANSI SQL, MySQL, PostgreSQL, SQLite o SQL Server— para adaptarlo a las pequeñas diferencias en los nombres de tipos. Los objetos anidados pueden aplanarse en columnas con prefijo (address.city se convierte en address_city) o mantenerse como una única columna JSON, y "Convertir nombres a snake_case" transforma las claves JSON en camelCase a nombres de columna SQL convencionales.

Con más de un registro, al activar "Añadir sentencias INSERT" se añade una sentencia INSERT por registro debajo de la CREATE TABLE, utilizando las mismas columnas inferidas —útil para sembrar una base de datos de prueba desde un archivo JSON. La inferencia siempre examina todos los registros suministrados, no solo el primero, por lo que un campo que a veces está presente se deja correctamente como nullable en lugar de ser adivinado incorrectamente.

Todo se ejecuta en tu navegador. El JSON que pegas y el esquema generado a partir de él nunca se cargan en ningún lugar —eso importa cuando los datos de ejemplo provienen de una exportación de producción. Copia el resultado, descárgalo como archivo .txt o envía el resultado de vuelta al entrada para seguir refinando el esquema.

Preguntas frecuentes

¿Cómo se deciden los tipos de columna?
Cada columna se deduce de cada valor observado para ese campo en todos los registros que pegaste, no solo del primero. Un campo con tipos mixtos (un número en un registro, una cadena en otro) recurre a una columna de texto, ya que ese es el único tipo que puede contener ambos de forma segura.
¿Qué sucede con un campo llamado "id"?
Una columna llamada id (después de la conversión a snake_case, si está habilitada) se convierte en PRIMARY KEY. La sintaxis de autoincremento o identidad difiere lo suficiente entre dialectos como para dejarla fuera —añádela tú mismo una vez que hayas elegido una estrategia.
¿Cuál es la diferencia entre las dos opciones de objetos anidados?
"Aplanar con guion bajo" transforma un objeto anidado como address: { city } en una columna address_city separada. "Mantener como columna JSON" almacena el objeto anidado completo como una única columna JSON (o texto) en su lugar. Los arrays siempre se mantienen como una única columna JSON/texto, ya que una única fila no puede contener una lista de longitud variable.
¿Puede generar datos para insertar además de la tabla?
Sí. Activa "Añadir sentencias INSERT" y, si pegaste un array de objetos, una sentencia INSERT por registro se añade debajo de la CREATE TABLE, utilizando las columnas y tipos ya inferidos.
¿Se carga mi JSON en algún lugar?
No. El análisis, la inferencia de tipos y la generación de SQL se ejecutan localmente en tu navegador — tu JSON y el esquema derivado de él nunca abandonan tu dispositivo.