Formatea consultas SQL para hacerlas más legibles.
Los resultados tienen carácter informativo. Contrástalos con otras fuentes.
Se calcula en tu navegador. Nada de lo que introduces se envía a ningún sitio.
Este formateador compara palabras clave, así que romperá una cadena que contenga la palabra FROM
Parte tu consulta por espacios y puntuación e inserta un salto de línea delante de cada una de veintitrés palabras clave. No tiene ni idea de qué es una cadena literal. Formatea SELECT name FROM t WHERE label = 'order from stock' y el literal vuelve como 'order\nfrom stock': un salto de línea dentro de las comillas y una consulta que ya filtra otra cosa.
Cómo funciona
- Colapsa todas las secuencias de espacios y luego parte la consulta en fragmentos por espacios, paréntesis, comas y puntos y coma.
- Empieza una línea nueva delante de cada una de las veintitrés palabras clave de cláusula, sin distinguir mayúsculas.
- Sigue el anidamiento con los paréntesis de apertura y cierre e indenta dos espacios por nivel.
para cada fragmento:
si el fragmento es ')' → sangría = max(0; sangría − 1)
si el fragmento es una palabra clave de cláusula → emitir salto de línea + dos espacios × sangría
emitir el fragmento sin cambios
si el fragmento es '(' → sangría = sangría + 1Ejemplo resuelto
Una consulta cuyo texto contiene una palabra clave entre comillas.
- entrada: SELECT name FROM t WHERE label = 'order from stock'
- SELECT, FROM y WHERE abren cada uno una línea nueva, según lo previsto
- la palabra from dentro de las comillas también se reconoce, porque las comillas son invisibles para la comparación
- la salida coloca un salto de línea entre 'order y from stock'
- el literal ya no es la misma cadena que era
Tres saltos de línea buscados y uno que cambia el significado de la consulta. Todo lo que queda fuera de las cadenas se formatea bien; todo lo que queda dentro corre peligro.
Cómo leer el resultado
- Revisa cualquier consulta que contenga texto entrecomillado antes de usar el resultado. Los comentarios entrañan el mismo riesgo: una palabra clave dentro de un comentario también recibe un salto de línea, y en un comentario de una sola línea ese salto puede empujar el resto del comentario a una línea de SQL activa.
- La sangría sigue solo a los paréntesis, así que refleja la profundidad de anidamiento y no la estructura de cláusulas. Una consulta larga y plana sin paréntesis sale completamente sin sangrar por muchas cláusulas que tenga, lo que es correcto para esta regla y a menudo no es lo que querías.
- La lista de palabras clave es fija y general. La sintaxis propia de cada dialecto —funciones de ventana, expresiones de tabla comunes, extensiones del fabricante, MERGE— no está en la lista y se quedará en la misma línea en lugar de tener la suya.
- Solo se añaden espacios. Los fragmentos se emiten exactamente como los escribiste, así que tu uso de mayúsculas se conserva y ninguna palabra clave se reescribe: la herramienta cambia la disposición, no el texto.
Preguntas frecuentes
- ¿Es seguro usarlo con consultas de producción?
- Formatea primero y lee la salida antes de usarla. La herramienta nunca reescribe tus fragmentos, pero puede insertar un salto de línea dentro de una cadena entrecomillada o de un comentario, y en ambos casos el SQL resultante significa algo distinto de lo que pegaste.
- ¿Por qué no se indenta mi consulta anidada?
- La sangría la gobiernan únicamente los paréntesis. Una subconsulta entre paréntesis se indenta; una serie de uniones y cláusulas sin paréntesis no, porque la herramienta no tiene un modelo de la estructura de cláusulas contra el que indentar.