1. Inicio
  2. Herramientas para desarrolladores
  3. Formatear SQL

Formateador de SQL

Convierte una consulta SQL escrita en una sola línea, o copiada de un log, en código legible: una cláusula por línea, columnas y condiciones sangradas y palabras clave en mayúsculas. También puede compactarla en una sola línea.

Palabras clave

Cómo usar el formateador SQL

  1. Pega una o varias sentencias separadas por ;. Funciona con la sintaxis común de MySQL, MariaDB, PostgreSQL, SQL Server, SQLite y Oracle.
  2. Elige la sangría y si quieres las palabras clave en mayúsculas (lo más habitual en guías de estilo) o en minúsculas.
  3. Copia el resultado. Con «Compactar» obtienes la consulta en una sola línea, útil para incrustarla en código o en un archivo de configuración; los comentarios -- se convierten en /* */ para no comentar el resto de la línea.

Cómo funciona y qué límites tiene

Es un formateador sencillo basado en palabras clave, no un analizador completo de SQL. Primero divide el texto en piezas (palabras, números, operadores, cadenas y comentarios) y después aplica reglas:

  • SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, UNION, INSERT INTO, VALUES, UPDATE, SET y WITH empiezan línea.
  • En las listas de columnas (SELECT, GROUP BY, ORDER BY, SET) cada elemento va en su propia línea, sin partir las comas que están dentro de funciones como COALESCE(a, b) o listas IN (…).
  • Cada JOIN abre línea y su ON va sangrado debajo; las condiciones AND/OR de WHERE, ON y HAVING también, salvo el AND de un BETWEEN.
  • Las subconsultas entre paréntesis se sangran un nivel más.
  • El contenido de las cadenas ('…'), identificadores entre comillas, corchetes o acentos graves y los comentarios se copia sin tocar.

No es perfecto: no valida la sintaxis, no entiende procedimientos almacenados, bloques BEGIN … END, sentencias CASE largas ni dialectos muy específicos, que pueden quedar en una línea o con una sangría mejorable. Revisa el resultado antes de usarlo en un script importante. Lo que sí garantiza es que no cambia el significado: solo modifica espacios, saltos de línea y mayúsculas de las palabras clave.

Ejemplo

La consulta de ejemplo, de una sola línea, queda así:

SELECT
  c.nombre,
  c.pais,
  COUNT(p.id) AS pedidos,
  SUM(p.total) AS facturado
FROM clientes c
INNER JOIN pedidos p
  ON p.cliente_id = c.id
  AND p.estado <> 'anulado'
WHERE
  p.fecha BETWEEN '2026-01-01' AND '2026-06-30'
  AND c.pais IN ('MX', 'CO', 'ES')
GROUP BY
  c.nombre,
  c.pais
HAVING
  SUM(p.total) > 1000
ORDER BY
  facturado DESC
LIMIT 20;

Con este formato se ve de un vistazo qué tablas intervienen, qué filtra cada condición y que el AND del BETWEEN forma parte del rango de fechas y no es una condición más.

Buenas prácticas de estilo SQL

  • Alias claros: clientes c está bien en consultas cortas; en las largas, mejor clientes cli o el nombre completo.
  • Evita SELECT * en código de producción: lista las columnas para que un cambio en la tabla no rompa la aplicación.
  • Paréntesis con OR: AND tiene más precedencia que OR. a AND b OR c significa (a AND b) OR c; si no es lo que quieres, añade paréntesis. Un buen formato ayuda a detectarlo.
  • No concatenes valores del usuario en la consulta: usa parámetros (?, $1, :nombre) para evitar inyección SQL.

Si los datos de la consulta salen en CSV, puedes pasarlos a JSON con CSV a JSON o al revés con JSON a CSV. Para crear tablas de prueba con datos ficticios usa el generador de datos de prueba, y si necesitas formatear otros lenguajes tienes el formateador de JSON y el formateador de XML. Todo se procesa en tu navegador: tus consultas no se envían a ningún servidor.

Preguntas frecuentes

¿Formatear una consulta SQL cambia su resultado?

No. Solo se modifican espacios, saltos de línea y mayúsculas de las palabras clave, que SQL no distingue. Las cadenas, los identificadores entre comillas y los comentarios se mantienen tal cual.

¿Con qué bases de datos funciona?

Con la sintaxis estándar que comparten MySQL, MariaDB, PostgreSQL, SQL Server, SQLite y Oracle. Construcciones muy específicas de un dialecto o procedimientos almacenados pueden quedar con un formato mejorable.

¿Es mejor escribir las palabras clave SQL en mayúsculas?

Es una convención, no una obligación: SQL no distingue mayúsculas en palabras clave. Escribirlas en mayúsculas ayuda a distinguirlas de los nombres de tablas y columnas.

¿El formateador valida si mi SQL es correcto?

No. Solo avisa de comillas sin cerrar y paréntesis desequilibrados. Para comprobar la sintaxis completa ejecuta la consulta con EXPLAIN en tu base de datos.