SQL legible en el dialecto que usas
Este formateador SQL acepta consultas de cualquier longitud, incluso varias sentencias a la vez, y las indenta de forma coherente: una cláusula por línea, columnas y condiciones alineadas, y palabras clave en las mayúsculas o minúsculas que prefieras. Entiende la sintaxis de más de quince dialectos, desde PostgreSQL, MySQL y SQL Server hasta BigQuery, Snowflake y Oracle PL/SQL, así que los operadores, comillas y placeholders propios de cada dialecto se mantienen intactos. Cambia a Minificar para volver a dejar la consulta en una sola línea para un archivo de configuración o una cadena en tu código. Todo se ejecuta en tu navegador; tus consultas nunca se suben.
Cómo formatear una consulta SQL
- 1Pega tu SQL en el panel izquierdo o empieza con la consulta de ejemplo.
- 2Elige el dialecto en que está escrita la consulta. Standard SQL sirve para la mayoría de consultas sencillas; elegir el dialecto correcto importa para cosas como los casts
::de PostgreSQL, los identificadores con backticks de MySQL o los[brackets]de SQL Server. - 3Ajusta las mayúsculas de palabras clave y la indentación, y abre Más opciones para las mayúsculas de tipos de datos y funciones, la indentación tabular, dónde van
AND/ORy las líneas en blanco entre sentencias. - 4La consulta formateada aparece a la derecha mientras escribes. Si no se puede analizar, se muestran la línea y la columna del problema.
- 5Copia el resultado, descárgalo como archivo
.sqlo elige Minificar para dejarlo en una sola línea.
¿Por qué formatear SQL?
El SQL se escribe una vez y se lee muchas: en revisiones de código, en un log de consultas lentas, en una migración que alguien tiene que depurar a las 2 de la madrugada. Una consulta generada por un ORM o copiada de un log suele llegar como una única línea enorme. Poner cada cláusula en su propia línea e indentar las subconsultas hace visible su estructura: qué tablas se unen, por qué columnas y qué condiciones se aplican dónde.
Un formato coherente también reduce los diffs. Cuando todo el equipo formatea las consultas igual, una condición modificada aparece como una sola línea cambiada en lugar de un párrafo reorganizado.
Opciones de formato explicadas
- Mayúsculas de palabras clave
- UPPER hace que SELECT, FROM y WHERE destaquen frente a los nombres de tablas y columnas, la convención más habitual. lower conviene a equipos a los que las mayúsculas les resultan ruidosas. Conservar deja las palabras clave tal como las escribiste.
- Indentación
- Dos o cuatro espacios, o tabulaciones. Los estilos tabulares, en cambio, rellenan las palabras clave hasta una columna de ancho fijo para que las expresiones queden alineadas después.
- Posición de AND / OR
- Al inicio coloca cada operador lógico al principio de la línea, lo que facilita comentar una condición; al final lo deja al final de la línea anterior.
- Ancho de expresión
- Las expresiones entre paréntesis más cortas que este número de caracteres se quedan en una línea; las más largas se dividen.
- Operadores compactos
- Escribe a+b en lugar de a + b. Más compacto, pero más difícil de leer.
Elegir el dialecto correcto
Los dialectos SQL difieren en más cosas de las que crees: cómo se citan los identificadores ("name", `name` o [name]), cómo es un placeholder (?, $1, :name, @param) y qué palabras están reservadas. El formateador usa una gramática distinta para cada dialecto, así que no confunde el cuerpo de una función $$ de PostgreSQL ni un comentario # de MySQL con otra cosa.
Si ves un error de análisis en una consulta que sabes que es válida, lo primero que debes revisar es el dialecto. Standard SQL es estricto a propósito y no conoce todas las extensiones de cada proveedor.
Minificar SQL
Minificar hace lo contrario de formatear: elimina los comentarios y reduce todos los espacios en blanco a espacios simples, dejando una línea que puedes pegar en un archivo YAML, una variable de entorno o un literal de cadena. Los literales de cadena, los identificadores entre comillas y los cuerpos con dollar-quoting se copian tal cual, así que un valor como 'two spaces' conserva ambos espacios. Los hints del optimizador escritos como /*+ … */ y los comentarios ejecutables de MySQL /*! … */ se mantienen, porque cambian cómo se ejecuta la consulta.
¿Trabajas con JSON? El formateador JSON hace lo mismo con documentos JSON, y el minificador de código se encarga de CSS, JavaScript y HTML.
Preguntas frecuentes
- ¿Mi SQL se envía a un servidor?
- No. El formateo y la minificación se ejecutan por completo en tu navegador, así que las consultas con nombres de tablas, datos de clientes o credenciales nunca salen de tu dispositivo.
- ¿Qué dialectos SQL se admiten?
- Standard SQL, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Amazon Redshift, Spark SQL, Hive, Trino y Presto, DuckDB, ClickHouse, IBM Db2 y Db2 for IBM i, SingleStoreDB, TiDB y Couchbase N1QL.
- ¿Formatear cambia lo que hace mi consulta?
- No. Solo cambian los espacios en blanco y, si lo eliges, las mayúsculas y minúsculas de palabras clave, tipos de datos y funciones. Los identificadores entre comillas y los literales de cadena nunca se modifican. Cambiar las mayúsculas de identificadores sin comillas es seguro en la mayoría de bases de datos, pero déjalo en Conservar si tu base de datos los distingue.
- ¿Por qué aparece un error de análisis?
- O la consulta tiene un error de sintaxis, como un paréntesis o una comilla sin cerrar, o usa una sintaxis que el dialecto elegido no incluye. El mensaje indica la línea y la columna donde se detuvo el análisis; prueba con el dialecto que usa realmente tu base de datos.
- ¿Puedo formatear varias sentencias a la vez?
- Sí. Sepáralas con punto y coma y cada una se formatea por turno, con el número de líneas en blanco entre ellas que elijas.
- ¿Se conservan los comentarios?
- Al formatear, sí: los comentarios de línea y de bloque se quedan donde estaban. Minificar los elimina, salvo los hints del optimizador y los comentarios ejecutables de MySQL.
- ¿Cómo minifico una consulta SQL en una sola línea?
- Elige Minificar en la parte superior de la herramienta. Se eliminan los comentarios y se reducen los espacios, mientras que los literales de cadena y los identificadores entre comillas se mantienen exactamente como están.