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.
Cómo usar el formateador SQL
- Pega una o varias sentencias separadas por
;. Funciona con la sintaxis común de MySQL, MariaDB, PostgreSQL, SQL Server, SQLite y Oracle. - 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.
- 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,SETyWITHempiezan 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 comoCOALESCE(a, b)o listasIN (…). - Cada
JOINabre línea y suONva sangrado debajo; las condicionesAND/ORdeWHERE,ONyHAVINGtambién, salvo elANDde unBETWEEN. - 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 cestá bien en consultas cortas; en las largas, mejorclientes clio 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:ANDtiene más precedencia queOR.a AND b OR csignifica(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.