Formatear SQL online — Indentar y embellecer consultas
Formatea SQL (MySQL, PostgreSQL y otros dialectos, mayúsculas, sangría)
Funciona en tu navegador · no se sube nada
Qué es
Una consulta copiada de un log o de un ORM suele llegar en una sola línea larga, o con una sangría desigual, y cuesta leerla y revisarla. Esta herramienta divide el SQL en cláusulas como SELECT, FROM y WHERE y lo indenta de forma coherente. El resultado se actualiza mientras escribes.
Cómo se usa
- Pega tu SQL en la entrada. Puedes incluir varias sentencias separadas por punto y coma.
- Elige el dialecto de tu base de datos.
- Escoge palabras clave en mayúsculas, en minúsculas o tal como las escribiste.
- Elige sangría de 2 espacios, 4 espacios o tabulador y copia el resultado.
Cómo funciona
- El formateo lo hace la biblioteca de código abierto
sql-formatter. Divide la entrada en tokens y decide los saltos de línea y la sangría según la cláusula y el nivel de paréntesis. - Los dialectos disponibles son SQL estándar, MySQL, PostgreSQL, MariaDB, SQLite, BigQuery, Oracle (PL/SQL) y SQL Server (T-SQL). El dialecto cambia cómo se leen las comillas de identificador (
`,",[ ]), los marcadores de parámetro (?,$1,@name) y los operadores. - Los marcadores de MyBatis
#{id},#{name,jdbcType=VARCHAR}y${table}se conservan tal cual en todos los dialectos. En MySQL#normalmente inicia un comentario, pero#{se trata como marcador. También se conserva un marcador repartido en varias líneas; las llaves anidadas como#{list[${i}]}no se admiten. - Parámetros enlazados:
?y:nameen SQL estándar, MySQL y MariaDB;$1y:nameen PostgreSQL;:nameen Oracle;@nameen SQL Server y BigQuery; SQLite acepta?,?1,:name,@namey$name. - Los errores indican la línea, la columna y el texto donde se detuvo el análisis.
- La opción de mayúsculas solo se aplica a las palabras reservadas. Los literales de cadena, los comentarios y los identificadores, incluidos nombres de tablas y columnas con tildes o ñ, no se modifican.
- La opción de tabulador usa un carácter de tabulación por nivel de sangría.
- Solo reformatea. No ejecuta la consulta ni comprueba lo que significa.
Ejemplos
Entrada:
select id, name from users where age > 20 and city = 'Córdoba' order by name
Resultado (SQL estándar, mayúsculas, 2 espacios):
SELECT
id,
name
FROM
users
WHERE
age > 20
AND city = 'Córdoba'
ORDER BY
name
Preguntas frecuentes
¿Mi consulta se envía a un servidor?
No. El formateo se hace en tu navegador con la biblioteca sql-formatter, y las consultas no se transmiten ni se guardan. Aun así, evita mostrar en una pantalla compartida consultas con contraseñas reales o datos personales.
¿Qué dialecto elijo?
El de la base de datos que uses. Así se reconoce bien la sintaxis propia de cada uno, como las comillas invertidas de MySQL o las conversiones `::` y los parámetros `$1` de PostgreSQL. Si no lo tienes claro, empieza por SQL estándar.
¿Formatear puede cambiar lo que hace mi consulta?
Solo cambian los espacios, los saltos de línea y las mayúsculas de las palabras clave. Los literales de cadena, los comentarios y los identificadores conservan su contenido, y el cambio de mayúsculas nunca toca valores entre comillas, así que la consulta se comporta igual.
¿Y si aparece un error?
Una comilla sin cerrar o un símbolo que el dialecto elegido no admite pueden detener el analizador. Revisa el punto que indica el mensaje o prueba con otro dialecto. Es un formateador, no un validador, así que no detectará todos los errores de tu SQL.