🗄️
Developer/SQL Formatter

SQL Formatter

Format and beautify SQL queries with syntax highlighting. Supports 6 dialects — Standard SQL, MySQL, PostgreSQL, T-SQL, PL/SQL, and SQLite.

100% LOCAL4 dialectsSyntax highlightCompress modeCopy result
Saved Queries· Auto-save on
▾
La calculadoraPage 1
Generic ANSI SQL
Input SQL
Formatted SQL
SELECT
  u.id,
  u.name,
  u.email,
  count(o.id) AS order_count,
  sum(o.total) AS total_spent
FROM
  users u
  LEFT JOIN orders o ON u.id = o.user_id
WHERE
  u.created_at >= '2026-01-01'
  AND u.status = 'active'
GROUP BY
  u.id,
  u.name,
  u.email
HAVING
  count(o.id) > 0
ORDER BY
  total_spent DESC
LIMIT
  10;
Query Stats
Characters286
Lines22
Keywords8
DialectStandard SQL
ModeFormatted
Data Source & Legal Disclaimer
Effective: 2026
Sources: Browser-side processing (no external API)

This tool runs 100% in your browser. All computation happens locally on your device — your input is never uploaded to any server. Results are for reference only.

See all data sources & update policy →
Cómo funcionaPage 2

How SQL formatting works — illustrated

A formatter is a small compiler pipeline with two stages. The lexer reads the raw query and classifies each run of characters as a keyword, identifier, string literal, number, or operator — the same tokens a database parser would see. The printer then re-emits that token stream: it converts keywords to the chosen case (UPPERCASE, lowercase, or preserve), puts each major clause — SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY — on its own line, indents nested expressions by 2 spaces (or a tab), and always leaves string literals byte-for-byte intact. That last rule is what makes compress mode safe: newlines are stripped outside literals, so a multi-line string inside a query survives minification. Dialect support (MySQL backticks, T-SQL brackets, Postgres dollar quotes) tunes both stages.

The tokenizer-and-printer pipeline
SQL FORMATTING PIPELINEselect u.id,u.name from users u where u.age>18LEXER — TOKEN STREAMselect u.id, u.name from users u where u.age > 18PRINTER: keyword case · 2-space indent · one clause per line · literals preservedSELECT u.id, u.nameFROM users uWHERE u.age > 18

Formatting never changes what the query means — it only changes how the token stream is laid out.

Worked example

Ken maintains an analytics dashboard and pastes a minified SQL query his colleague copied straight out of the database console.

  1. Paste:He drops in "select u.id,u.name,count(o.id) as c from users u left join orders o on u.id=o.user_id where u.created_at>='2026-01-01' group by u.id order by c desc limit 10;" as one cramped line.
  2. Dialect:He selects PostgreSQL (dollar quotes, ARRAY, RETURNING) and sets keyword case to UPPERCASE with a 2-space indent.
  3. Format:The formatter reflows it — SELECT, FROM, LEFT JOIN, WHERE, GROUP BY, ORDER BY each on their own line, with the string literal '2026-01-01' left byte-for-byte intact.
  4. Verify:The query stats show lines jump from 1 to 7; he copies the formatted version back into the query editor and it runs with identical results.
FAQ y detallesPage 3

To format SQL: paste your query — the tool adds proper indentation, capitalizes keywords, and aligns clauses for readability. Supports MySQL, PostgreSQL, SQLite, and SQL Server.

FreeToolHub SQL Formatter is a free browser-based tool that beautifies and validates SQL queries, no signup, no upload.

Sobre esta herramienta

¿Qué es esta herramienta?

Formatea y embellece consultas SQL con resaltado de sintaxis. Soporta SQL estándar, MySQL, PostgreSQL y T-SQL. Modo compresión disponible. Gratis, sin registro.

4 dialectsSyntax highlightCompress modeCopy result

¿Qué es el formateador de SQL?

Este formateador embellece consultas SQL: analiza la sentencia, aplica indentación consistente y mayúsculas a las palabras clave, parte las cláusulas largas en líneas legibles y añade resaltado de sintaxis para que la estructura salte a la vista. Maneja SQL estándar más los dialectos que importan a diario —MySQL, PostgreSQL y T-SQL— e incluye un modo comprimido que elimina espacios en blanco para enviar consultas por APIs o incrustarlas en código donde el tamaño cuenta. El formateo se ejecuta por completo en tu navegador; las consultas nunca tocan un servidor, lo que importa para cualquier cosa que toque datos de producción.

¿Quién debería usar esta herramienta?

Analistas que heredan consultas de mil caracteres en una sola línea pegadas desde logs o herramientas de BI y necesitan leerlas antes de editarlas. Desarrolladores que revisan consultas en code review donde el ruido de formato tapa los cambios de lógica. DBAs que documentan consultas guardadas y vistas con un estilo consistente. Ingenieros de datos que mueven consultas entre dialectos y quieren un tratamiento de palabras clave adecuado al dialecto. Y cualquiera que pegue SQL en tickets, documentación o Slack donde un muro de texto pierde al lector.

¿Cómo funciona?

(1) Pega tu consulta: una sentencia o un lote. (2) Elige el dialecto: SQL estándar, MySQL, PostgreSQL o T-SQL, para que las palabras clave y funciones se formateen según esa variante. (3) El formateador indenta subconsultas anidadas y cláusulas JOIN en sus propias líneas, pone en mayúsculas las palabras clave y alinea las listas de columnas; ajusta el ancho de indentación si el estilo de tu equipo es otro. (4) Usa el modo comprimido para minificar cuando necesites la consulta compacta. (5) Copia el resultado; el formateo preserva la semántica, así que la salida se ejecuta idénticamente.

¿Por qué importa el formateo de SQL?

El SQL sin formatear es donde se esconden los bugs. Una cláusula WHERE aplastada en una línea hace invisible un AND que falta; las condiciones ON alineadas hacen obvias a simple vista las join keys equivocadas; unas palabras clave con mayúsculas consistentes dejan separar la estructura de los datos al instante. Las convenciones que han convergido entre equipos: palabras clave en mayúsculas y en su propia línea para las cláusulas principales (SELECT, FROM, WHERE, GROUP BY, ORDER BY); una columna por línea en listas SELECT largas, con una convención de coma final que tu equipo elige una vez; JOIN con su condición ON indentada bajo el join; subconsultas indentadas un nivel y con una línea en blanco encima. Más allá de la legibilidad, el formateo es un contrato de colaboración: el code review de consultas formateadas de forma consistente revisa lógica en vez de discutir espacios en blanco, y los diffs sobre consultas formateadas muestran cambios reales en lugar de ruido de reflujo. La elección de dialecto importa más de lo que la gente espera —T-SQL y PostgreSQL tratan ciertas funciones e identificadores de forma distinta—, así que formatea con el dialecto que ejecutas, y cuando envíes consultas por APIs o las incrustes en código de aplicación, el modo comprimido vuelve a quitar los espacios en blanco.

Preguntas frecuentes

¿Por qué importan los dialectos de SQL para formatear?

Porque la misma consulta se puede escribir de forma distinta según el motor: PostgreSQL usa LIMIT mientras SQL Server usa TOP, MySQL cita identificadores con backticks mientras PostgreSQL usa comillas dobles, y los paquetes PL/SQL añaden bloques que el SQL estándar nunca tiene. Formatear con el dialecto Equivocado arriesga reflujo alrededor de sintaxis que el motor no acepta. Elige primero el dialecto: el formateador ajusta el tratamiento de palabras clave para coincidir.

¿MAYÚSCULAS o minúsculas para las palabras clave: hay un estándar?

Las palabras clave en MAYÚSCULAS son una convención heredada de los volcados de mainframe de la era de las tarjetas perforadas y siguen siendo el estilo más común en SQL corporativo; las minúsculas ganan en equipos más nuevos y en constructores de consultas que ya resaltan sintaxis. Ambas valen: la consistencia dentro de una base de código supera cualquier regla externa. El formateador cambia de mayúsculas a minúsculas con un clic para que coincidas con el archivo que estás editando, sin pelear.

¿Mi SQL sale de mi navegador cuando lo formateo?

No: el análisis y el formateo se ejecutan por completo en JavaScript en tu página, y no se sube nada. Esto importa más de lo que parece: las consultas reales incrustan nombres de tablas, columnas y valores WHERE que describen tu negocio. Pegarlas en un sitio web aleatorio es una fuga de datos esperando un archivo de log; aquí el viaje de ida y vuelta nunca sale de la pestaña.

¿Qué es el estilo de coma inicial y por qué la gente lo usa?

Las comas iniciales ponen la coma al comienzo de cada línea de columna (, col2 en lugar de col1,) de modo que añadir o quitar una línea nunca toca a su vecina: diffs más limpios en code review y menos errores de coma ausente al editar listas SELECT largas. El estilo final se lee de forma más natural para la mayoría de la gente. El formateador soporta ambos; elige lo que ya haga tu equipo.

Which SQL dialects does it support?

Standard SQL (ANSI), MySQL, PostgreSQL, and T-SQL (SQL Server). It handles complex queries including JOINs, subqueries, CTEs (WITH clauses), window functions, and UNION/INTERSECT/EXCEPT. The formatter applies consistent indentation, keyword capitalization (SELECT/FROM/WHERE), and aligns column lists for readability. A compression mode minifies whitespace for production queries.

Does it preserve comments and string literals?

Yes. The parser tokenizes SQL to distinguish string literals (single quotes), line comments (--), block comments (/* */), and identifiers from keywords. Comments and string contents are preserved exactly as-is. This prevents the formatter from breaking inline SQL hints or altering string values during formatting.

Herramientas relacionadas

Compartir:𝕏inf⬆
Joke of the Day
Oct 22

What do you call a really smart cookie?

Free core, no account

Keep the Free Edition Free

No signups, no data sold. Every tool is free to use — the free tier allows 5 downloads or saves per day, and the optional Pro plan ($7/mo, $59/yr) adds unlimited downloads, batch processing, white-label exports and an ad-free experience.

☕Support me on Ko-fi— support the free tier

100% of proceeds go towards hosting & building more free tools.