Formateador SQL

Da formato a consultas SQL con indentación coherente para revisar y depurar.

SQL formatter online: formatear SQL para MySQL, PostgreSQL, SQL Server, Oracle y más

Pega una consulta en el cuadro de la izquierda y a la derecha aparece formateada: cada cláusula empieza en su propia línea, las columnas y condiciones quedan indentadas y las palabras clave se escriben con un criterio uniforme. Elige el dialecto de tu base de datos para que se reconozca su sintaxis, como los identificadores entre acentos graves de MySQL, los corchetes y las `@variables` de SQL Server o los parámetros `$1` de PostgreSQL. El formateador SQL funciona en tu navegador y la consulta no se envía a ningún servidor, así que el SQL de producción, con sus tablas y sus datos, queda en tu equipo.

Qué hace el formateador

Una consulta en una sola línea, copiada de un log o de un ORM, cuesta de leer. El formateador la divide en tokens y la reorganiza con una cláusula por línea, una columna o condición por línea y los JOIN indentados bajo FROM. Esta es la salida real para una consulta pegada en una sola línea, con el dialecto MySQL, palabras clave en mayúsculas y 2 espacios:

SELECT
  c.id,
  c.nombre,
  sum(p.total) AS total_pedidos
FROM
  clientes c
  INNER JOIN pedidos p ON p.cliente_id = c.id
WHERE
  p.fecha >= '2026-01-01'
  AND c.pais = 'ES'
GROUP BY
  c.id,
  c.nombre
HAVING
  sum(p.total) > 1000
ORDER BY
  total_pedidos DESC
LIMIT
  20

Formatear solo cambia los espacios, los saltos de línea y las mayúsculas de las palabras clave. Los literales de texto, los identificadores y los nombres de funciones conservan su escritura exacta, así que la consulta formateada devuelve el mismo resultado que la original.

Elegir el dialecto SQL

Los dialectos SQL se diferencian justo en lo que un formateador necesita entender: cómo se escriben los identificadores, qué caracteres inician parámetros y comentarios y qué palabras son reservadas. El menú ofrece Standard SQL, MySQL, MariaDB, PostgreSQL, SQL Server (T-SQL), Oracle PL/SQL, SQLite, BigQuery, Snowflake y Redshift.

MySQL / MariaDB     `identificadores`, marcadores ?, comentarios #
PostgreSQL          "identificadores", parámetros $1, conversiones ::, cadenas $$
SQL Server (T-SQL)  [identificadores], @variables, TOP en lugar de LIMIT
Oracle PL/SQL       variables :nombre, identificadores "ENTRE_COMILLAS"
BigQuery            nombres `proyecto.dataset.tabla`

Standard SQL es un punto de partida razonable si no lo tienes claro. Pero si una consulta que funciona en tu base de datos da un error de análisis, cambia al dialecto de esa base antes de dar por hecho que la consulta está mal. Para formatear SQL Server, por ejemplo, elige T-SQL: select top 5 [nombre] from dbo.clientes where id = @id queda con TOP 5 [nombre] bajo SELECT y id = @id bajo WHERE.

Mayúsculas e indentación

Las palabras clave en mayúsculas (SELECT, FROM, WHERE) son la convención más habitual: separan de un vistazo la estructura de la consulta de los nombres de tablas y columnas, y la mayoría de las guías de estilo las usan. Las minúsculas gustan en equipos a los que las mayúsculas les parecen ruido. La tercera opción, Keep keyword case, respeta lo que escribiste y solo corrige la disposición.

Para indentar SQL puedes elegir 2 o 4 espacios según el estilo de tu proyecto. Más que la elección importa la coherencia: si todas las consultas de un repositorio pasan por el mismo formateador con los mismos ajustes, los diffs muestran cambios reales y no ruido de espacios. El mismo motor está disponible como paquete npm sql-formatter, con herramienta de línea de comandos, y SQLFluff puede formatear y además revisar el estilo del SQL en integración continua.

Cuando el formateo falla

El formateador divide la consulta en tokens según el dialecto elegido e indica dónde no puede seguir. Con una comilla sin cerrar, por ejemplo, muestra Parse error: Unexpected "'abc" at line 1 column 27. Las causas habituales son una comilla o un paréntesis sin cerrar, una construcción de otro dialecto o un fragmento en lugar de una sentencia completa. La línea y la columna señalan dónde se detuvo la lectura, que a menudo está justo después del error real.

Un formateador no es un validador. No comprueba que las tablas o columnas existan, que los tipos encajen ni que la lógica sea correcta; una consulta puede quedar perfectamente formateada y fallar en la base de datos. Ejecútala, o usa EXPLAIN, para comprobarla.

Consultas de logs y ORMs

Hibernate, Eloquent, Django o Entity Framework registran las consultas en una sola línea y con marcadores de parámetros. Pégalas aquí para leer los joins y las condiciones, y sustituye los valores a mano cuando quieras ejecutarlas. Si vas a compartir la consulta con tu equipo, deja los marcadores como están: ?, $1 y @id se reconocen con el dialecto correspondiente y se mantienen intactos.

Los logs de consultas lentas de MySQL y la extensión pg_stat_statements de PostgreSQL normalizan los valores literales como marcadores, así que la consulta formateada muestra la forma del problema. A partir de ahí, revisa las condiciones de WHERE y JOIN para ver qué columnas necesitan un índice.

SQL legible más allá del formato

Formatear es el primer paso. Una consulta legible usa además alias con significado (pedidos p, no t2), JOIN ... ON explícitos en lugar de joins con comas y condiciones en el WHERE, listas de columnas en lugar de SELECT * en el código de la aplicación y expresiones de tabla comunes (WITH ...) para dar nombre a los pasos intermedios de una consulta larga. Pon los comentarios encima de la consulta o de cada CTE y prefiere los comentarios de línea --, que admiten todos los dialectos.

Frequently asked questions

¿Cómo formateo una consulta SQL online?

Pega la consulta en el cuadro de la izquierda, elige el dialecto de tu base de datos y copia el resultado de la derecha. Las mayúsculas de las palabras clave y la indentación se ajustan con los menús de arriba.

¿Formatear cambia lo que hace mi consulta?

No. Solo cambian los espacios, los saltos de línea y las mayúsculas de las palabras clave. Identificadores, cadenas, números y funciones se mantienen exactamente igual, así que el resultado es el mismo.

¿Qué dialectos SQL admite?

Standard SQL, MySQL, MariaDB, PostgreSQL, SQL Server (T-SQL), Oracle PL/SQL, SQLite, BigQuery, Snowflake y Redshift. Elige el de tu base de datos para que su sintaxis se reconozca bien.

¿Por qué aparece un error de análisis?

Suele ser una comilla o un paréntesis sin cerrar, o sintaxis de otro dialecto. Selecciona el dialecto que usa tu base de datos y revisa la línea y la columna que indica el mensaje.

¿El formateador comprueba si mi SQL es válido?

No. Solo comprueba que puede leer los tokens. No conoce tu esquema, así que ejecuta la consulta o usa EXPLAIN para validarla.

¿Se envía mi consulta a algún servidor?

No. El formateo se hace en tu navegador y la consulta no se sube, no se registra y no se guarda.