Formateador SQL
Embellece SQL desordenado en sentencias legibles y con sangría uniforme. Elige el dialecto y el uso de mayúsculas: el formato se ejecuta en tu navegador.
Pega tu SQL
Resultado
¿Qué hace un formateador de SQL?
Un formateador de SQL reescribe la consulta con sangría, saltos de línea y espaciado uniformes, de modo que la estructura de los JOIN, las subconsultas y los bloques CASE se vea de un vistazo. Es la forma más rápida de convertir una sentencia de una sola línea copiada de un log, un ORM o un generador de consultas en algo que una persona pueda revisar.
El formato tiene en cuenta el dialecto, y eso importa más de lo que parece: las comillas invertidas de MySQL, los casts de PostgreSQL, los arrays de BigQuery y el TOP de Transact-SQL se analizan con reglas distintas, así que hay que indicar la base de datos antes de tocar el texto. Así los identificadores, operadores y literales se conservan tal cual mientras se reordena el espacio en blanco.
No se ejecuta nada y no se envía nada: la sentencia se analiza y se reimprime en tu navegador. El formato no cambia lo que hace la consulta — los identificadores, operadores, literales y su orden se mantienen, y el contenido de las cadenas nunca se toca. El uso de mayúsculas solo cambia si lo pides. Antes de dar por buena una consulta reformateada, pega la versión anterior y la nueva en la [herramienta de diff](/diff) para ver los cambios reales.
Cómo formatear SQL
- Pega tu consulta en el cuadro de entrada: sirven tanto sentencias sueltas como scripts largos.
- Elige el dialecto que usa tu base de datos: SQL estándar, MySQL, MariaDB, PostgreSQL, SQLite, BigQuery, Snowflake, Transact-SQL, PL/SQL o Redshift.
- Elige el uso de mayúsculas: upper para la guía de estilo clásica, lower si tu equipo lo prefiere, o preserve para no tocar el original.
- Pulsa Formatear SQL.
- Si el dialecto no coincide con la sintaxis, el formateador avisa con un error de análisis y la posición; cambia el desplegable y vuelve a intentarlo.
- Copia el resultado, descárgalo como archivo .sql o compáralo con el original en la [herramienta de diff](/diff) antes de hacer commit.
Ejemplos de formato SQL
SELECT de una línea con JOIN
select u.id,u.name from users u join orders o on o.user_id=u.id where o.total>100 order by o.total desc;
SELECT u.id, u.name FROM users u JOIN orders o ON o.user_id = u.id WHERE o.total > 100 ORDER BY o.total DESC;
CTE escrita en una línea
with recent as (select id,total from orders where created_at>'2026-01-01') select count(*) from recent where total>100;
WITH
recent AS (
SELECT
id,
total
FROM
orders
WHERE
created_at > '2026-01-01'
)
SELECT
count(*)
FROM
recent
WHERE
total > 100;Subconsulta en el WHERE
select * from users where id in (select user_id from orders where total>500) and active=true;
SELECT
*
FROM
users
WHERE
id IN (
SELECT
user_id
FROM
orders
WHERE
total > 500
)
AND active = TRUE;Informe con función de ventana
select customer_id, row_number() over (partition by customer_id order by created_at desc) as rn from orders;
SELECT
customer_id,
row_number() OVER (
PARTITION BY
customer_id
ORDER BY
created_at DESC
) AS rn
FROM
orders;Consulta Transact-SQL
select top 10 name, created_at from dbo.users where deleted_at is null order by created_at desc;
SELECT TOP 10 name, created_at FROM dbo.users WHERE deleted_at IS NULL ORDER BY created_at DESC;
Formateador SQL: UrsaKit frente a otras opciones
| Criterio | UrsaKit | Hacerlo por tu cuenta | Herramienta típica |
|---|---|---|---|
| Preparación | Abrir la página | Instalar y ejecutar una CLI | Abrir la página |
| Conocimiento del dialecto | 10 dialectos en una página | Uno por herramienta | Variable |
| Los datos salen del dispositivo | No, se ejecuta en el navegador | No | A menudo se envían a un servidor |
| Opciones | Dialecto y mayúsculas | Todos los flags de la CLI | Normalmente solo mayúsculas |
| Uso de mayúsculas | upper, lower o preserve | Configurable | A menudo fijo |
| Requiere registro | No | No | A veces |
Preguntas frecuentes
¿Qué dialectos de SQL se admiten?
Diez opciones en el desplegable: SQL estándar y también MySQL, MariaDB, PostgreSQL, SQLite, BigQuery, Snowflake, Transact-SQL, PL/SQL y Redshift. Elige el dialecto que usa tu base de datos, porque el analizador aplica sus reglas de comillas y sintaxis.
¿El formato cambia mi consulta?
No. Solo se mueven los espacios y los saltos de línea: los identificadores, operadores, literales y su orden se conservan, y el contenido de las cadenas nunca se toca, así que 'Ada' o una comilla escapada vuelven exactamente como estaban. El uso de mayúsculas cambia solo si eliges upper o lower; con preserve no se toca. Una salvedad: los marcadores de posición que el analizador no reconoce, como %s o $1 en PostgreSQL, pueden recibir un espacio extra o perderse, así que revisa el diff antes de pegar la consulta en el código.
¿Por qué aparece un error de sintaxis?
El formateador analiza la sentencia con el dialecto que hayas elegido, así que unas comillas desequilibradas o una sintaxis de otra base de datos —los identificadores [b] de MySQL bajo PostgreSQL, por ejemplo— pueden provocar un error de análisis. El mensaje indica el dialecto y la posición; cambia el desplegable e inténtalo de nuevo.
¿Se sube mi SQL?
No. El formato se ejecuta localmente con JavaScript en tu navegador.
¿Puedo mantener las palabras clave en minúscula?
Sí. Con lower se convierten todas a minúscula y con preserve se mantiene el uso original de la consulta.
¿Funciona sin conexión?
Sí. Una vez cargada la página, el formato no realiza más peticiones de red.
¿Cómo formateo SQL en VS Code, DBeaver o DataGrip?
En VS Code instala una extensión de formato SQL y usa Format Document con Shift+Alt+F en Windows y Linux, o Shift+Option+F en macOS. El editor SQL de DBeaver reformatea con Ctrl+Shift+F, y DataGrip y otros IDE de JetBrains usan Code → Reformat Code (Ctrl+Alt+L, o Cmd+Option+L en macOS). Para un servidor o una pipeline de CI, lo habitual es sqlfluff y la línea de comandos de sql-formatter.