Skip to content
Back to Blog
developersql-formattersqldatabases

Cómo Formatear la Salida de Consultas SQL para Mayor Legibilidad

Un muro de SQL sin sangría oculta errores. Aprende a formatear consultas según el dialecto con un formateador gratuito que detecta PostgreSQL, MySQL, T-SQL y más.

SZ
Founder, Molixa
10 min read
Compartir
Cómo Formatear la Salida de Consultas SQL para Mayor Legibilidad
Table of contents6 sections

Para formatear una consulta SQL, coloca cada cláusula principal (SELECT, FROM, WHERE, JOIN, GROUP BY) en su propia línea, sangra las columnas y condiciones debajo de ella, y usa un caso de palabra clave consistente. La forma más rápida es pegarla en un formateador SQL que detecte automáticamente tu dialecto y la re-sangre con un solo clic, todo en tu navegador.

El formateo no es cosmético. Una consulta apretada en una sola línea oculta los errores exactos que te cuestan horas: una condición de join faltante que silenciosamente convierte un inner join en un cross join, una cláusula WHERE que debería haber sido un ON, o un OR que se vincula más amplio de lo que piensas. Distribuye la misma consulta en líneas sangradas y esos errores saltan a la vista. SQL legible es SQL depurable.

SQL desordenado vs SQL formateado#

Aquí está una consulta tal como suele llegar, pegada desde un registro o un volcado de ORM:

select u.id,u.name,o.total from users u join orders o on u.id=o.user_id where u.active=1 and o.total>100 order by o.total desc;

Funciona, pero no se puede escanear. Ahora la misma consulta, formateada:

SELECT
    u.id,
    u.name,
    o.total
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE u.active = 1
  AND o.total > 100
ORDER BY o.total DESC;

Nada de la lógica cambió. Pero ahora la condición de unión, los dos filtros y la ordenación están cada uno en su propia línea, el AND está indentado debajo de WHERE para que se vea que es una segunda condición, y las palabras clave en mayúsculas separan la estructura de los nombres de columnas y tablas. Si ese JOIN no tuviera su ON, el vacío sería obvio de un vistazo.

Las reglas fundamentales de formato#

Un buen formato SQL se reduce a unas pocas decisiones coherentes. Aplícalas siempre de la misma manera y tus consultas serán predecibles de leer.

  • Una cláusula por línea. SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY y cada JOIN comienzan en una nueva línea.
  • Sangrar el cuerpo. Las columnas en la lista de selección, las condiciones en la cláusula WHERE y las tablas unidas se colocan con sangría debajo de su cláusula.
  • Operadores booleanos al inicio. Pon AND y OR al comienzo de la línea, no al final. Lees de arriba a abajo, por lo que el operador que conecta dos condiciones debe estar donde tu vista se posa.
  • Mayúsculas consistentes en palabras clave. Las palabras clave en mayúsculas (SELECT, FROM) frente a identificadores en minúsculas o mixtas es la convención común porque separa visualmente el lenguaje de los datos. Elige un caso y no lo mezcles.
  • Alinear comparaciones. columna = valor con espacios alrededor del operador se lee más rápido que columna=valor.
Opción de estiloOpciones comunesPor qué es importante
Mayúsculas en palabras claveMAYÚSCULAS / minúsculasSepara las palabras clave SQL de tus identificadores
Sangría2 o 4 espaciosMuestra la jerarquía cláusula-cuerpo; elige una y mantente consistente
Operadores booleanosal inicio / al finalAND/OR al inicio se lee mejor en condiciones apiladas
Posición de la comaal inicio / al finalLas comas al inicio facilitan comentar una columna

Peculiaridades de los dialectos que los embellecedores genéricos rompen#

Aquí es donde fallan la mayoría de los formateadores universales. SQL no es un solo idioma; cada base de datos tiene una sintaxis que un formateador ingenuo estropea. Si tu embellecedor no conoce el dialecto, puede romper un SQL válido o dejarlo feo.

  • T-SQL (SQL Server) usa identificadores entre corchetes como [Order Details] y [user]. Un formateador que no los reconozca puede agregar espacios extra dentro de los corchetes o tratarlos como tokens separados. T-SQL también usa TOP y bloques procedurales BEGIN ... END que necesitan su propia sangría.
  • PostgreSQL tiene cadenas entre signos de dólar ($$ ... $$) para cuerpos de funciones, sintaxis de conversión :: y literales de arreglo. Un formateador debe dejar el contenido de un bloque $$ intacto en lugar de reformatearlo como si fuera una sentencia.
  • MySQL usa identificadores entre comillas invertidas (`select`) y tiene sus propias funciones y sintaxis LIMIT.
  • Oracle (PL/SQL) envuelve la lógica en bloques DECLARE/BEGIN/END y usa (+) para uniones externas heredadas, que un formateador de SELECT simple no maneja.
  • SQLite es mayormente estándar pero tolera cadenas entre comillas dobles en lugares donde otros las rechazan.

Un formateador que detecte automáticamente el dialecto que pegaste y luego aplique las reglas de tokenización correctas marca la diferencia entre una salida limpia y una consulta rota. Por eso la detección del dialecto importa más que la configuración de sangría.

Consejo: si un formateador alguna vez cambia lo que tu consulta hace, no solo cómo se ve, significa que analizó mal el dialecto. El formateo debe ser puramente presentacional. Prueba la versión formateada contra tu base de datos antes de confiar en ella.

Por qué el formateo del lado del navegador es importante para SQL#

Hay un aspecto de privacidad específico de SQL que no se aplica al formateo de, por ejemplo, JSON genérico. Tus consultas contienen tu esquema. Nombres reales de tablas, nombres de columnas y, a veces, valores literales como direcciones de correo electrónico o IDs están ahí en el texto. Pegar eso en una herramienta web aleatoria significa que la consulta, y todo lo que revela sobre tu modelo de datos, llega al servidor de otra persona.

Un formateador que se ejecuta 100% en tu navegador nunca sube la consulta. El texto se tokeniza y se reindenta mediante JavaScript en la página, y nada sale de la pestaña. Para cualquiera que formatee consultas de producción, nombres de esquemas internos o cualquier cosa bajo un NDA, ese es el único valor predeterminado seguro. El formateador SQL de Molixa funciona completamente del lado del cliente por esta misma razón: tu consulta nunca toca un servidor.

Paso 1: Pega la consulta sin formato y deja que detecte el dialecto#

Coloca tu SQL sin formato en el formateador SQL gratuito. Detecta si pegaste PostgreSQL, MySQL, T-SQL, Oracle o SQLite según la sintaxis (los identificadores entre corchetes indican T-SQL, las comillas invertidas indican MySQL, el dollar-quoting indica PostgreSQL) y aplica el tokenizador correspondiente. Si la detección falla en un fragmento ambiguo, selecciona el dialecto manualmente.

Paso 2: Configura mayúsculas/minúsculas y sangría, luego formatea#

Elige palabras clave en mayúsculas o minúsculas y sangría de 2 o 4 espacios para que coincida con el estilo de tu equipo. Ejecuta el formateo. Las cláusulas se dividen en líneas independientes, el cuerpo se sangra y los operadores booleanos se colocan al inicio de la línea. Lee el resultado de arriba a abajo y confirma que cada JOIN tenga su ON y que cada condición esté donde esperas.

Paso 3: Cópialo de vuelta y verifica contra la base de datos#

Copia la consulta formateada en tu editor o archivo de migración. Como el formateo es solo de presentación, la consulta se comporta de manera idéntica, pero ejecútala una vez para confirmar, especialmente si la herramienta tuvo que adivinar el dialecto. Luego confirma la versión legible para que la próxima persona que la toque no herede un muro de una sola línea.

Formateo en tu flujo de trabajo#

Un formateador es más útil en dos momentos: cuando heredas una consulta comprimida de alguien más, y justo antes de confirmar tu propio código. Formatear al recibir ayuda a entender SQL ajeno; formatear al enviar mantiene tu repositorio legible. Muchos equipos también ejecutan un formateador en un hook de pre-commit para que cada consulta confirmada siga automáticamente un mismo estilo.

El mismo principio de lado del navegador, sin subir archivos, aplica a otras utilidades de desarrollo. Si también estás limpiando respuestas de API o configuraciones junto con tu SQL, el formateador JSON se encarga de eso, y el probador de expresiones regulares es útil cuando extraes valores estructurados de resultados de consultas o registros. Para una tarea de conversión relacionada, nuestra guía sobre convertir JSON a tipos TypeScript cubre el mismo enfoque en el navegador y priorizando la privacidad.

Preguntas Frecuentes#

¿Cómo formateo una consulta SQL para que sea legible? Coloque cada cláusula principal (SELECT, FROM, WHERE, cada JOIN, GROUP BY, ORDER BY) en su propia línea, indentando las columnas y condiciones debajo de su cláusula, coloque AND y OR al inicio de las líneas de condiciones apiladas, y use un uso consistente de mayúsculas/minúsculas en las palabras clave. La forma más rápida es un formateador SQL que re-indente toda la consulta con un solo clic.

¿Las palabras clave SQL deben ir en mayúsculas o minúsculas? Ambas funcionan; lo que importa es la consistencia. Las palabras clave en mayúsculas frente a los identificadores en minúsculas es la convención más común porque separa visualmente el lenguaje SQL de los nombres de tablas y columnas. Elija un estilo, aplíquelo a cada consulta y deje que un formateador lo imponga para no tener que pensarlo nunca más.

¿Es seguro formatear SQL en una herramienta en línea? Solo si se ejecuta en su navegador. Las consultas exponen su esquema, nombres reales de tablas y columnas y, a veces, valores literales, por lo que una herramienta que sube la consulta envía todo eso a un servidor. Un formateador del lado del cliente como el formateador SQL de Molixa procesa todo en la página y nunca transmite su consulta, lo cual es la opción segura para SQL de producción.

¿El formateo cambia lo que hace mi consulta SQL? No. El formateo correcto es puramente presentacional; añade saltos de línea, sangrías y cambios de mayúsculas/minúsculas sin tocar la lógica. Si un formateador alguna vez altera el resultado, es porque analizó su dialecto incorrectamente. Por eso es importante el formateo consciente del dialecto, y por qué debería ejecutar la consulta formateada una vez para confirmar que se comporta de manera idéntica.

¿Puede un solo formateador manejar PostgreSQL, MySQL y T-SQL? Sí, si detecta el dialecto y aplica las reglas correctas. T-SQL usa identificadores entre corchetes, MySQL usa acentos graves y PostgreSQL usa bloques entre signos de dólar, por lo que un formateador debe reconocer cada uno para no dañarlos. El formateador de Molixa detecta automáticamente PostgreSQL, MySQL, T-SQL, Oracle y SQLite, y permite anular la elección manualmente.

¿Por qué poner AND y OR al inicio de la línea? Porque se lee SQL de arriba a abajo, y un operador booleano al inicio se sitúa donde su ojo aterriza al comienzo de cada condición, haciendo obvia la estructura lógica. Los operadores al final se esconden al final de la línea anterior, donde son fáciles de pasar por alto. Las comas al inicio en la lista de selección funcionan de la misma manera y hacen que comentar una columna sea trivial.

developersql-formattersqldatabases

More from Molixa

Try Molixa Tools

50+ free AI tools for content creation, SEO, coding, and more. No signup, no watermark.

Explore all tools
Formatear SQL Online (5 Dialectos) | Molixa | Molixa