🗄️
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
▾
A 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 →
Como 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 e detalhesPage 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 ferramenta

O que é esta ferramenta?

Formate e embelece consultas SQL com destaque de sintaxe. Suporta SQL padrão, MySQL, PostgreSQL e T-SQL. Modo de compressão disponível. Grátis, sem cadastro.

4 dialectsSyntax highlightCompress modeCopy result

O Que É o SQL Formatter?

Este formatador embelece consultas SQL: ele analisa a instrução, aplica recuo e capitalização consistentes para palavras-chave, divide cláusulas longas em linhas legíveis e adiciona destaque de sintaxe para que a estrutura se destaque. Ele lida com SQL padrão mais os dialetos que importam no dia a dia — MySQL, PostgreSQL e T-SQL — e inclui um modo de compressão que remove espaços em branco para enviar consultas por APIs ou incorporá-las em código onde o tamanho importa. A formatação é executada inteiramente no seu navegador; as consultas nunca tocam em um servidor, o que é importante para qualquer coisa que toque dados de produção.

Quem Deve Usar Esta Ferramenta?

Analistas que herdam consultas de milhares de caracteres em uma única linha coladas de logs ou ferramentas BI e precisam que sejam legíveis antes de editar. Desenvolvedores que revisam consultas em revisão de código onde o ruído de formatação afoga as alterações lógicas. DBAs que documentam consultas e views salvas com estilo consistente. Engenheiros de dados que movem consultas entre dialetos e desejam tratamento de palavras-chave adequado ao dialeto. Qualquer pessoa que cole SQL em tickets, docs ou Slack onde um bloco de texto faz o leitor perder o foco.

Como Funciona?

(1) Cole sua consulta — instrução única ou um lote. (2) Escolha o dialeto: SQL padrão, MySQL, PostgreSQL ou T-SQL, para que palavras-chave e funções sejam formatadas conforme esse sabor. (3) O formatador recua subconsultas aninhadas e cláusulas JOIN em suas próprias linhas, capitaliza palavras-chave e alinha listas de colunas; ajuste a largura do recuo se o estilo da sua equipe for diferente. (4) Use o modo de compressão para minificar quando você precisa que a consulta seja compacta. (5) Copie o resultado; a formatação preserva a semântica, então a saída executa de forma idêntica.

Por Que a Formatação de SQL Importa?

SQL não formatado é onde os bugs escondem-se. Uma cláusula WHERE amontonada em uma linha torna um AND ausente invisível; condições alinhadas ON tornam chaves de join erradas óbvias de relance; capitalização consistente de palavras-chave permite que o olho separe estrutura de dados instantaneamente. As convenções que convergiram entre equipes: palavras-chave em maiúsculas e em suas próprias linhas para cláusulas principais (SELECT, FROM, WHERE, GROUP BY, ORDER BY); uma coluna por linha em listas SELECT para consultas longas, com uma convenção de vírgula final que sua equipe escolhe uma vez; JOINs com sua condição ON recuadas sob o join; subconsultas recuadas um nível e com uma linha em branco acima. Além da legibilidade, a formatação é um contrato de colaboração: revisão de código em consultas formatadas consistentemente revisa lógica em vez de discutir espaços em branco, e diffs em consultas formatadas mostram alterações reais em vez de ruído de reflow. A escolha do dialeto importa mais do que as pessoas esperam — T-SQL e PostgreSQL tratam certas funções e identificadores de forma diferente — então formate com o dialeto que você executa, e ao enviar consultas por APIs ou incorporá-las em código de aplicativo, o modo de compressão remove os espaços em branco.

Perguntas frequentes

Por que os dialetos SQL importam para formatação?

Porque a mesma consulta pode ser escrita de forma diferente por mecanismo: PostgreSQL usa LIMIT enquanto SQL Server usa TOP, MySQL cita identificadores com crases enquanto PostgreSQL usa aspas duplas, e pacotes PL/SQL adicionam blocos que o SQL padrão nunca tem. Formatar com o dialeto errado corre o risco de refazer ao redor de sintaxe que o mecanismo não aceita. Escolha o dialeto primeiro — o formatador ajusta o tratamento de palavras-chave para corresponder.

MAIÚSCULAS ou minúsculas para palavras-chave — existe um padrão?

Palavras-chave em MAIÚSCULAS são uma convenção legada de despejos de mainframe da era de cartões perfurados e permanecem o estilo mais comum em empresas SQL; minúsculas vence em equipes mais novas e em construtores de consulta que destacam sintaxe de qualquer forma. Qualquer um está bom — consistência dentro de um base de código vence qualquer regra externa. O formatador alterna capitalização em um clique para que você possa corresponder ao arquivo que está editando, não lutar contra ele.

Minha SQL deixa meu navegador quando eu a formato?

Não — análise e formatação são executadas inteiramente em JavaScript na sua página, e nada é enviado. Isso importa mais do que parece: consultas reais incorporam nomes de tabela, nomes de coluna e valores WHERE que descrevem seu negócio. Colá-los em um site aleatório é um vazamento de dados esperando por um arquivo de log; aqui a viagem de ida e volta nunca deixa a aba.

O que é estilo de vírgula inicial e por que as pessoas usam?

Vírgulas iniciais colocam a vírgula no início de cada linha de coluna (`, col2` em vez de `col1,`) para que adicionar ou remover uma linha nunca toque seu vizinho — diffs mais limpos em revisão de código e menos erros de vírgula ausente ao editar listas SELECT longas. O estilo final lê-se mais naturalmente para a maioria das pessoas. O formatador suporta ambos; escolha o que o código existente da sua equipe faz.

Quais dialetos SQL ele suporta?

SQL padrão (ANSI), MySQL, PostgreSQL e T-SQL (SQL Server). Ele lida com consultas complexas incluindo JOINs, subconsultas, CTEs (cláusulas WITH), funções de janela e UNION/INTERSECT/EXCEPT. O formatador aplica recuo consistente, capitalização de palavras-chave (SELECT/FROM/WHERE) e alinha listas de colunas para legibilidade. Um modo de compressão minifica espaços em branco para consultas de produção.

Ele preserva comentários e literais de string?

Sim. O analisador tokeniza SQL para distinguir literais de string (aspas simples), comentários de linha (--), comentários de bloco (/* */) e identificadores de palavras-chave. Comentários e conteúdos de string são preservados exatamente como estão. Isso impede que o formatador quebre dicas SQL inline ou altere valores de string durante a formatação.

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.

Ferramentas relacionadas

Compartilhar:𝕏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.