Inicio › Herramientas para desarrolladores › SQL a diagrama ER

SQL a diagrama ER

Pega tus sentencias CREATE TABLE y obtén al instante un diagrama entidad-relación: claves primarias, claves foráneas, columnas únicas y líneas de relación en notación pata de gallo. Arrastra las tablas a su sitio y luego descarga un PNG o SVG, o copia el diagrama como código Mermaid. Tu SQL nunca sale de tu navegador.

Última actualización:

Visualización

Diagrama

Arrastra las tablas para moverlas, arrastra el fondo para desplazarte y usa Ctrl + rueda para hacer zoom. Haz clic en una tabla para resaltar sus relaciones.

exactamente uno cero o uno cero o muchos clave foránea que admite NULL
Publicidad
Publicidad

Cómo usar SQL a diagrama ER

  1. Pega tu SQL: una o varias sentencias CREATE TABLE, o abre un archivo de volcado .sql. Usa el menú de ejemplos para ver muestras.
  2. Revisa el resumen bajo el editor: cuenta tablas, columnas y relaciones y enumera todo lo que no pudo resolver.
  3. Organiza el diagrama: arrastra las tablas, arrastra el fondo para desplazarte y usa Ajustar o Ctrl + rueda para hacer zoom. Haz clic en una tabla para resaltar sus vínculos.
  4. Ajusta la visualización: oculta los tipos de datos, muestra solo las columnas clave o marca las columnas que admiten NULL.
  5. Descarga PNG o SVG para documentos y presentaciones, o copia el código Mermaid para pegarlo en Markdown, GitHub o una wiki.

Qué muestra un diagrama ER

Un diagrama entidad-relación (DER) dibuja cada tabla como una caja con sus columnas y conecta las tablas siempre que una clave foránea de una tabla apunta a una clave de otra. Es la forma más rápida de entender una base de datos desconocida, revisar un cambio de esquema o documentar un proyecto. Esta herramienta crea un DER físico: muestra los nombres reales de tablas y columnas y los tipos de datos tal como aparecen en tu DDL.

En tu SQLEn el diagrama
id INT PRIMARY KEY o PRIMARY KEY (a, b)Distintivo PK, nombre de columna subrayado
customer_id INT REFERENCES customers(id)Distintivo FK y una línea hacia customers
email VARCHAR(255) UNIQUEDistintivo UQ
La columna de clave foránea es NOT NULLLínea continua, "exactamente uno" en el extremo padre
La columna de clave foránea admite NULLLínea discontinua, "cero o uno" en el extremo padre
La columna de clave foránea también es UNIQUE (o toda la PK)Uno a uno: "cero o uno" en el extremo hijo
Clave foránea normalUno a muchos: pata de gallo en el extremo hijo
Tabla que se referencia a sí misma (parent_id)Un bucle en el lado derecho de la tabla

Cómo obtener el script CREATE TABLE de tu base de datos

Base de datosComando (solo esquema, sin datos)
MySQL / MariaDBmysqldump --no-data -u user -p dbname > schema.sql
PostgreSQLpg_dump --schema-only dbname > schema.sql
SQLitesqlite3 app.db .schema > schema.sql
SQL ServerSSMS: haz clic derecho en la base de datos → Tareas → Generar scripts (solo esquema)
Rails / Django / PrismaUsa el structure.sql generado, la salida de sqlmigrate o prisma migrate diff --script

Consejos para un diagrama legible

  • Declara tus claves foráneas. Los vínculos solo se dibujan a partir de restricciones REFERENCES, que además son lo que mantiene la coherencia de tus datos.
  • Usa "Solo columnas clave" en esquemas grandes: las cajas se reducen a las columnas PK y FK, así que la estructura destaca.
  • Lógica de la disposición: las tablas de las que nada depende se sitúan a la izquierda; cada tabla se coloca una columna a la derecha de las tablas a las que hace referencia. Arrastra las cajas para ajustarlas y pulsa Reorganizar para empezar de nuevo.
  • Diagrama solo una parte pegando únicamente las tablas que te interesan; las referencias a tablas que faltan se muestran como advertencias en lugar de romper el diagrama.
  • Guárdalo en el control de versiones copiando el código Mermaid en un README; se vuelve a renderizar cada vez que cambia el esquema.

Preguntas frecuentes

¿Qué dialectos SQL admite el generador de diagramas ER?

Lee la sintaxis CREATE TABLE común a MySQL, MariaDB, PostgreSQL, SQLite y SQL Server, incluidos los identificadores con acento grave, comillas dobles y [corchetes], los nombres calificados con esquema, AUTO_INCREMENT, SERIAL, IDENTITY y opciones de tabla como ENGINE=InnoDB. Las sentencias distintas de CREATE TABLE y ALTER TABLE … ADD se ignoran.

¿Cómo se detectan las relaciones?

A partir de las claves foráneas: cláusulas REFERENCES en las columnas, restricciones FOREIGN KEY (…) REFERENCES tabla (…) dentro de la tabla y sentencias ALTER TABLE … ADD CONSTRAINT … FOREIGN KEY. Si una clave foránea no indica las columnas referenciadas, se usa la clave primaria de la tabla padre. Nunca se adivina solo por los nombres de columna, así que las tablas sin claves foráneas declaradas aparecen sin conexión.

¿Cómo leo los símbolos de pata de gallo?

El extremo de la tabla referenciada (padre) muestra exactamente uno (dos barras) cuando la columna de clave foránea es NOT NULL, o cero o uno (barra y círculo) cuando admite NULL. El extremo de la tabla hija muestra cero o muchos (pata de gallo y círculo), o cero o uno cuando la columna de clave foránea es única o es toda la clave primaria, lo que la convierte en un vínculo uno a uno.

¿Puedo exportar el diagrama?

Sí. Descargar PNG renderiza el diagrama al doble de resolución sobre fondo blanco, ideal para documentos y presentaciones. Descargar SVG te da un archivo vectorial escalable que puedes editar en Inkscape, Figma o Illustrator. Copiar como Mermaid genera código erDiagram que GitHub, GitLab y muchas wikis renderizan en Markdown.

¿Puedo obtener un diagrama de una base de datos existente?

Primero exporta el esquema como SQL y luego pégalo aquí. Por ejemplo: mysqldump --no-data dbname, pg_dump --schema-only dbname, sqlite3 file.db .schema, o Script Database as CREATE en SQL Server Management Studio. Solo se necesitan las definiciones de las tablas, no los datos.

¿Se sube mi esquema de base de datos a algún sitio?

No. El análisis, la disposición y la exportación de imágenes se ejecutan en JavaScript en tu navegador. El SQL que pegas y las posiciones de tus tablas se guardan solo en el almacenamiento local de este navegador para que sigan ahí cuando vuelvas.

¿Por qué una tabla aparece sin vínculos aunque tenga una columna como user_id?

El diagrama solo dibuja las relaciones declaradas como claves foráneas. Muchos esquemas (y algunos motores como MyISAM) omiten las restricciones de clave foránea. Añade una cláusula REFERENCES o una línea ALTER TABLE … ADD FOREIGN KEY al SQL pegado y aparecerá el vínculo.

¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

Herramientas relacionadas

Ver todas las de Conversores de datos y formatos de archivo →