araç köşesi

Formatear una consulta SQL

Indente una consulta SQL según su dialecto o redúzcala a una sola línea

Sus datos se quedan con usted. La conversión ocurre dentro del navegador; no se envía nada a ningún servidor.

Cómo funciona

Pegue la consulta en el panel izquierdo; la versión con formato aparece al instante en el panel derecho. La herramienta lleva las palabras clave principales —SELECT, FROM, WHERE, GROUP BY, ORDER BY, JOIN— al principio de línea, pone cada columna de la lista SELECT en su propia línea e indenta un paso las condiciones AND y OR del WHERE; las tablas temporales abiertas con WITH (las CTE), las ramas de un CASE WHEN y las funciones de ventana como ROW_NUMBER() OVER (PARTITION BY ...) también reciben su propio nivel. Una consulta de 340 caracteres copiada de un registro se convierte, en cuanto la pega, en una disposición que muestra línea a línea qué tablas se unen y qué condiciones se aplican. Indicar de qué base procede la consulta hace el resultado más exacto: la conversión valor::int de PostgreSQL, el TOP 10 y los nombres entre [corchetes] de SQL Server o los acentos graves de MySQL se leen entonces con las reglas de ese dialecto. Si no lo sabe, deje SQL estándar. El texto entre comillas simples, los nombres entre comillas dobles o corchetes y las líneas de comentario quedan intactos. La línea de resultado dice cuántas líneas se convirtieron en cuántas y qué reglas se aplicaron; puede copiar la salida o descargarla como archivo .sql. La opción de una línea hace lo contrario: se eliminan los espacios sobrantes y los saltos de línea y la consulta queda en una sola línea — para incrustarla en código, pegarla en un campo que solo admite una línea o compararla con un registro. Ahí los valores entre comillas simples también quedan intactos; los comentarios de línea con -- pasan a /* ... */, porque en una sola línea -- comentaría todo lo que va detrás y la consulta dejaría de funcionar.

Esta herramienta también se busca como formatear sql, sql formatter online, indentar consulta sql, dar formato a sql, embellecer consulta sql.

¿Qué es SQL?

SQL (Structured Query Language) es el lenguaje estándar para consultar bases de datos relacionales y manipular sus datos; MySQL, PostgreSQL, SQL Server, Oracle y SQLite hablan cada uno un dialecto suyo. El núcleo del lenguaje es declarativo: usted escribe qué quiere (qué columnas, de qué tabla, con qué condición) y la base planifica cómo encontrarlo. Los espacios y los saltos de línea no significan nada para SQL — una consulta apretada en una línea y la misma consulta con sangría cuidada se ejecutan exactamente igual; la diferencia existe solo para el humano que lee. Esa diferencia es la que produce esta herramienta.

¿Qué es Subconsulta (subquery)?

Una subconsulta es un segundo SELECT incrustado entre paréntesis dentro de una consulta; la consulta externa usa su resultado como una tabla o como un valor único. Para encontrar, por ejemplo, los salarios por encima de la media, a la derecha de la condición WHERE se escribe un SELECT aparte que calcula esa media. Como las subconsultas pueden anidarse, son la estructura que más dificulta la lectura: en una sola línea se pierde de vista qué paréntesis se cierra dónde. El formateador mete cada subconsulta un nivel adentro y muestra esas capas como una escalera.

¿Qué es Palabra clave (keyword)?

Las palabras clave son las palabras propias de SQL: SELECT, FROM, WHERE, JOIN, GROUP BY, ORDER BY. Ellas arman la gramática del lenguaje; todo lo demás son los nombres que usted pone — tablas, columnas y alias. Como SQL no distingue mayúsculas de minúsculas, las palabras clave funcionan se escriban como se escriban; ponerlas en mayúsculas es una convención de legibilidad que separa a ojo los comandos de los nombres. Esta herramienta aplica la conversión solo a las palabras clave; la escritura de los nombres que usted eligió queda tal cual.

¿Una sola línea o con sangría?

Los dos sentidos responden a una necesidad real. El formato con sangría es para leer: en un editor como SSMS, DBeaver o pgAdmin, una consulta larga muestra línea por línea qué tabla se une con cuál. La línea única es para transportar — cuando quiere incrustar la consulta en una cadena dentro del código, pegarla en un campo de configuración que solo admite una línea o comparar a ojo si dos consultas son iguales, los saltos de línea solo estorban.

Al reducir a una línea, el único peligro son los comentarios de línea. Un comentario que empieza con -- abarca todo hasta el final de la línea; cuando la consulta se aplana, todas las expresiones que venían detrás caen dentro del comentario y la consulta deja de funcionar en silencio. Esta herramienta no borra el comentario: lo convierte en bloque /* ... */ — su nota se conserva y la consulta sigue siendo ejecutable. Si el comentario contiene la secuencia */, esa secuencia se separa para que el bloque no se cierre antes de tiempo.

Formatear no es validar

Esta herramienta no ejecuta la consulta ni revisa la sintaxis como lo haría una base de datos: un nombre de columna inexistente, una tabla mal escrita o una condición de JOIN que falta siguen igual en la salida formateada. Su aporte es otro — al abrirse la consulta en líneas, un paréntesis de más, una condición fuera de sitio o una coma olvidada se ven a simple vista.

Su alcance también es estrecho a propósito: la herramienta está pensada para sentencias SQL de una en una. Varias sentencias separadas por punto y coma se separan con una línea en blanco; pero los cuerpos de procedimientos almacenados, los bloques BEGIN…END y los lenguajes procedimentales propios de cada base (PL/SQL, instrucciones de control de T-SQL) no son asunto suyo — en esos textos el corte de líneas puede no salir como espera.

¿Las palabras clave en MAYÚSCULAS o en minúsculas?

SQL no distingue mayúsculas de minúsculas: select y SELECT funcionan igual. La mayúscula es una convención asentada para separar a ojo los comandos del lenguaje de los nombres de tablas y columnas; los manuales y la documentación oficial la siguen en su mayoría, y si no conoce a quien va a leer, es la elección segura.

La minúscula ha ganado terreno en los últimos años, sobre todo en las bases de código: como los editores ya colorean las palabras clave, la mayúscula perdió su papel distintivo y la minúscula cansa menos la vista. Lo importante es aplicar la misma convención en todo el proyecto; la opción No tocar existe para corregir solo el corte de líneas sin alterar la escritura existente.

¿Qué cambia al elegir un dialecto?

SQL no es un solo lenguaje, sino una familia de lenguajes muy parecidos. El núcleo es el mismo en todas partes, pero cada base de datos tiene escrituras propias: PostgreSQL convierte con valor::int, SQL Server limita filas con TOP 10 y rodea los nombres con [corchetes], MySQL usa acentos graves y en BigQuery el nombre de una tabla tiene tres partes, como `proyecto.conjunto.tabla`.

Elegir el dialecto correcto hace que esas escrituras se entiendan como lo que son, nombre u orden. Una elección equivocada no cambia nada en la mayoría de las consultas, pero donde aparece una escritura así el corte de líneas puede salir inesperado. Si no sabe cuál es, deje SQL estándar: conoce el núcleo común y da formato correcto a casi todas las consultas del día a día. Si una consulta no se puede analizar con el dialecto elegido, la herramienta pasa en silencio a su formateador integrado y lo indica en la línea de resultado; nunca se queda sin salida.

Preguntas frecuentes

¿Cómo se formatea una consulta SQL?

Pegue la consulta en el panel izquierdo; su versión con las palabras clave al inicio de línea y las subconsultas con sangría se forma al instante a la derecha. Puede copiarla o descargarla como archivo .sql.

¿Mi consulta se envía a algún servidor?

No. El formateo se hace por completo en su navegador; la consulta, los nombres de tablas y los valores que contiene no van a ningún servidor. Puede pegar con tranquilidad condiciones WHERE con datos reales de clientes.

¿Cambian los valores de texto y los comentarios de la consulta?

No. Los valores entre comillas simples, los nombres entre comillas dobles o corchetes y los comentarios -- y /* */ se conservan tal cual; el cambio de mayúsculas y minúsculas se aplica solo a las palabras clave.

¿Cómo reduzco la consulta a una sola línea?

Elija la opción Reducir a una línea en la lista de arriba; los espacios sobrantes y los saltos de línea se limpian y la consulta aparece en una sola línea a la derecha. Los valores entre comillas simples quedan igual; los comentarios que empiezan con -- se convierten a /* ... */, porque en una línea única un -- convertiría en comentario todo lo que le sigue — esa conversión mantiene la consulta ejecutable.

¿Se puede formatear un procedimiento almacenado?

El alcance de esta herramienta es la consulta suelta. Los bloques BEGIN…END y las instrucciones procedimentales no se reconocen de forma especial; si pega un texto así, la salida sigue siendo ejecutable pero el corte de líneas puede no ser el que espera.

¿Por qué mi consulta que empieza con WITH (una CTE) no se indentaba bien?

Ahora sí se indenta. La herramienta pone cada tabla temporal abierta con WITH en su propio nivel, y con dos CTE anidadas el segundo bloque entra un paso más. Del mismo modo, cada rama de un CASE WHEN pasa a su propia línea y las funciones de ventana como ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...) también se despliegan.

No sé qué dialecto elegir. ¿Qué pasa entonces?

Nada malo: SQL estándar es la opción por defecto y da formato correcto a casi todas las consultas del día a día. El dialecto solo importa donde aparece una escritura propia de esa base: la conversión :: de PostgreSQL, el TOP y los [corchetes] de SQL Server. Si sabe de dónde viene la consulta, elíjala en la lista; si no, mire la salida y, si no es lo que esperaba, cambie el dialecto y vuelva a probar.