Formateador SQL

Pega SQL y se maqueta solo: las cadenas y los comentarios quedan intactos.

Cómo se usa

  1. Pega tu SQL en la caja: se formatea mientras escribes, sin ningún botón que pulsar.
  2. Elige mayúsculas o minúsculas para las palabras reservadas y 2 o 4 espacios de sangría; el resultado se actualiza al instante.
  3. Comprueba el número de líneas y copia el resultado o descárgalo como archivo .sql.

Ejemplo

Entrada

select u.id, u.name, count(o.id) as orders
from users u left join orders o on o.user_id = u.id
where u.active = 1 and o.created_at >= '2026-01-01'
group by u.id, u.name order by orders desc limit 10;

Formateado

SELECT
  u.id,
  u.name,
  count(o.id) AS orders
FROM users u
LEFT JOIN orders o
  ON o.user_id = u.id
WHERE u.active = 1
  AND o.created_at >= '2026-01-01'
GROUP BY
  u.id,
  u.name
ORDER BY
  orders DESC
LIMIT 10;

Solo con las reglas por defecto: cada cláusula abre una línea, los elementos de las listas llevan dos espacios y AND va con sangría. count(...) es un nombre de función, así que conserva las minúsculas que escribiste; la cadena de fecha no se toca.

Reglas, límites y problemas conocidos

  • Es un formateador de espacios en blanco: no analiza, valida ni ejecuta SQL. El SQL no válido también se maqueta.
  • No hay selector de dialecto. Se reconocen las cadenas con comillas simples, comillas dobles, acentos graves, corchetes y $tag$, así que el entrecomillado de MySQL, PostgreSQL, SQL Server y SQLite se puede pegar tal cual.
  • Solo se cambian las mayúsculas de las palabras reservadas. Los nombres de función, los nombres de tipo (count, int, varchar) y los identificadores entre comillas se imprimen exactamente como se escriben; entrecomilla los identificadores si tu base de datos distingue mayúsculas.
  • Las cadenas, los números y los comentarios nunca se reescriben. Un comentario -- fuerza un salto de línea y los comentarios nunca se eliminan. No hay modo de minificar.
  • El resultado se resalta sintácticamente (palabras clave, identificadores, cadenas, números y comentarios) para que la estructura se lea mejor. El resaltado es solo visual: Copiar y Descargar siempre producen el texto plano formateado.
  • Los saltos de línea solo se producen en los límites de cláusulas, listas, CASE, subconsultas, ventanas y columnas DDL. Los argumentos de función y las listas IN (...) quedan en una línea; las líneas largas se ajustan dentro del panel de resultado, mientras que Copiar y Descargar conservan el texto exacto sin ajustar.
  • Las cadenas se analizan con escapes '' y \'. Una cadena de SQL estándar que termina en barra invertida, como 'C:\', puede leerse como no cerrada: recibirás un aviso y tu entrada quedará intacta.
  • Sin procedimientos almacenados, DELIMITER ni bloques PL/SQL; sin subida de archivos, parámetros en la URL ni historial. Todo funciona en tu navegador: no se sube ni se guarda nada.
  • Por encima de 200.000 caracteres el resultado se actualiza unos 0,6 s después de que dejes de escribir; el texto nunca se trunca. La salida usa LF y no termina en salto de línea; el formateo es idempotente.

Lo que suele hacer falta después, una vez legible la consulta.