Dar formato al SQL que llega de los registros
Cuando copias una consulta de los registros de una aplicación, todo puede quedar en una sola línea. Un formateador SQL distribuye las cláusulas y aplica sangría a los bloques anidados. Así puedes localizar un JOIN o seguir un filtro sin reorganizar el texto a mano.
Pega la consulta y selecciona su dialecto. Puedes usar dos espacios, cuatro espacios o tabulaciones y elegir la escritura de las palabras clave. Al pulsar Formatear SQL, el resultado se muestra junto al original. Si cambias el texto o una opción, se borra el resultado anterior para que generes uno actualizado.
Usa el dialecto de la base de datos de origen
Tienes SQL estándar, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle SQL, BigQuery y Snowflake. La elección ayuda a reconocer diferencias como los identificadores entre acentos graves en MySQL o entre corchetes en T-SQL.
Este selector no convierte una consulta de un motor a otro ni adapta funciones o tablas. Seleccionar PostgreSQL para una consulta MySQL no la hace compatible. Oracle SQL tampoco implica compatibilidad general con procedimientos almacenados.
Revisar mejor no equivale a validar
Separar WHERE y HAVING permite identificar las condiciones que filtran filas y las que filtran grupos. Las CTE y subconsultas también ganan claridad con una sangría consistente. Aun así, el formato no comprueba si las condiciones representan lo que necesitas consultar.
La opción de mayúsculas solo afecta a las palabras clave reconocidas. Se mantiene la escritura de identificadores, funciones y tipos de datos; no se rellenan parámetros. Los comentarios se conservan, aunque puede cambiar su disposición. Revisa siempre el resultado con el contexto de tu base de datos.
Ejemplos de SQL formateado
Estos resultados usan datos ficticios, palabras clave en mayúsculas y sangría de dos espacios. Al cargar un ejemplo también se selecciona su dialecto.
JOIN y agregación
Agrupa pedidos pagados por cliente y filtra el total. Observa por separado la unión, el filtro de filas y el de grupos.
SELECT
c.id,
c.name,
count(o.id) AS order_count,
sum(o.total) AS revenue
FROM
customers c
JOIN orders o ON o.customer_id = c.id
WHERE
o.status = 'paid'
GROUP BY
c.id,
c.name
HAVING
sum(o.total) > 1000
ORDER BY
revenue DESC;Volver al formateador ↑CTE y función de ventana
Una CTE de PostgreSQL con ROW_NUMBER ordena los pedidos de cada cliente. La sangría permite seguir el SELECT anidado.
WITH
ranked_orders AS (
SELECT
id,
customer_id,
total,
row_number() OVER (
PARTITION BY
customer_id
ORDER BY
created_at DESC
) AS position
FROM
orders
WHERE
created_at >= date '2024-01-01'
)
SELECT
customer_id,
id,
total
FROM
ranked_orders
WHERE
position = 1
ORDER BY
customer_id;Volver al formateador ↑INSERT y comentarios
Ejemplo MySQL con identificadores entre acentos graves, un comentario y un punto y coma dentro de una cadena de texto.
-- Fictional seed data
INSERT INTO
`products` (`sku`, `name`, `price`)
VALUES
('DEMO-01', 'Desk lamp; warm light', 29.95),
('DEMO-02', 'Reader''s notebook', 8.50);Volver al formateador ↑Preguntas frecuentes
¿Cómo guardo el resultado?
Puedes copiarlo o descargarlo como formatted.sql. También puedes iniciar el formato con Ctrl+Intro o con Comando+Intro en macOS.
¿Se envía mi consulta a un servidor?
El formato se procesa en un Web Worker del navegador. La herramienta no envía SQL a una API de formato ni se conecta a una base de datos. Tampoco guarda la entrada de forma persistente ni la incluye en la URL.
¿Sirve para corregir o acelerar consultas?
No. Organiza espacios, saltos de línea y palabras clave. No comprueba tablas, columnas, tipos, permisos ni planes de ejecución. Usa las herramientas de tu base de datos para validar y analizar el rendimiento.
¿Puedo formatear varias sentencias?
Sí, si son sentencias SQL ordinarias separadas por punto y coma. Los puntos y coma dentro de cadenas reconocidas se tratan como datos. Los comandos DELIMITER personalizados, procedimientos y scripts de cliente quedan fuera del flujo admitido.
¿Por qué aparece un error?
Comprueba el dialecto, las comillas y los paréntesis. La sintaxis de plantillas o la interpolación de código puede no reconocerse. Se admiten hasta 50.000 caracteres y cada tarea se detiene a los diez segundos. Divide los scripts grandes.
¿Se eliminan comentarios o marcadores de parámetros?
Los comentarios se mantienen, pero su formato puede variar. Los marcadores compatibles con el dialecto no se sustituyen por valores. Los comentarios que desactivan el formateador pueden dejar fragmentos sin formatear.
