Formateador de SQL

Embellece SQL enredado con el motor open-source sql-formatter: elige dialecto, caja de palabras clave y sangría para tus consultas.

El formateo ocurre localmente en tu navegador. Tus consultas nunca salen del dispositivo.

Sangría
SQL formateado
—

Cómo funciona

El formateo lo hace sql-formatter, la misma librería open-source (MIT) que esta página incluye desde npm. Corre en tres pasos: un tokenizador por dialecto divide tu consulta en palabras clave, identificadores, cadenas y operadores; un pase de análisis ligero infiere la estructura de cláusulas (qué es lista SELECT, qué está anidado en un CASE); y un escritor de maquetación reemite los tokens una cláusula por bloque con tu sangría y caja. Ninguna base de datos interviene en ningún momento.

Tokenizador, no validador
Como el motor trabaja sobre tokens, formatea todo lo que pueda dividirse en tokens SQL — incluidas consultas a medias que estás escribiendo. No te dirá que una tabla no existe o que un JOIN es lógicamente incorrecto; la sintaxis solo se comprueba hasta donde el tokenizado exige. La librería tampoco maneja procedimientos almacenados ni delimitadores personalizados, y esos casos generan un error visible en lugar de un resultado mutilado.
Los cinco dialectos de aquí (y hay más)
Esta página ofrece SQL estándar, MySQL, PostgreSQL, SQLite y BigQuery — los motores de la mayoría de consultas que la gente pega. La librería subyacente conoce además ClickHouse, DB2, Hive, MariaDB, N1QL, Oracle PL/SQL, Redshift, Snowflake, Spark, Transact-SQL, Trino y otros; el dialecto afecta a las reglas de tokenización (acentos graves, conversiones ::, @params), por eso formatear con el equivocado puede verse ligeramente raro.
Por qué MAYÚSCULAS es el predeterminado
SQL no distingue mayúsculas en palabras clave, así que el estilo es la única señal que separa un SELECT despistado de un identificador buscado. La convención de palabras clave en mayúsculas (las cláusulas gritan, los datos se quedan como los escribiste) es el estilo dominante en libros, linters y guías de equipo, y hace la estructura de la consulta reconocible de un vistazo. Elige minúsculas o conservar si tu estándar difiere — la herramienta obedece.

Preguntas frecuentes

¿Esta herramienta ejecuta mi SQL en algún sitio?

No — nunca toca una base de datos. El formateador lee tu consulta como texto plano, reescribe espacios y mayúsculas de palabras clave, y te muestra el resultado. Tus sentencias, nombres de tabla y datos se quedan en tu dispositivo, y no hay conexión que configurar ni intentar.

¿Hay opción de minimizar o una sola línea?

No en esta página. La librería subyacente sql-formatter (v15, la misma que la versión actual de npm) es un pretty-printer: maquila consultas, no las comprime. Versiones antiguas tenían modo minificado; fue eliminado aguas arriba. Para reducir sentencias minimizadas a propósito, nuestra herramienta Code Minifier cubre texto SQL como trabajo aparte.

¿Me dirá si mi SQL está mal?

Solo de rebote. sql-formatter es un tokenizador más un motor de maquetación, no un validador: no revisa tu esquema, nombres de función ni siquiera la conformidad gramatical completa, y la mayoría del texto malformado pero tokenizable se formatea igual. Falla sí con construcciones realmente sin cerrar (como un literal de cadena abierto), y ese error se muestra en la línea de error.

¿Por qué los resultados difieren entre dialectos para la misma consulta?

Cada dialecto trae su propia lista de palabras clave y reglas de tokenización, así que el mismo texto puede segmentarse distinto: BigQuery trata de forma especial los literales struct y los @params, PostgreSQL conoce las conversiones ::, MySQL acepta identificadores con acentos graves. Elige tu motor real antes de formatear — las mayúsculas y saltos siguen el tokenizador del dialecto.

¿Se sube algo a un servidor?

No. El formateador es un módulo JavaScript incluido en esta página que corre en tu navegador (sql-formatter, licencia MIT). Tus consultas nunca salen del dispositivo — algo importante, porque las consultas suelen contener credenciales y datos de clientes.