Formateador SQL

Formateador SQL online

Haz que una consulta larga sea más fácil de revisar. Separa columnas, condiciones y subconsultas con el formato adecuado para tu base de datos.

Editor de consultasFormato en el navegador · sin ejecutar SQL
Cargar un ejemplo
213 / 50.000 caracteres

02 SQL formateado

La consulta original se conserva

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.

SQL Formatter · GitHub

Volver al formateador