Formatador de SQL
Formate consultas SQL com regras específicas por dialeto. Standard SQL, PostgreSQL, MySQL, BigQuery, T-SQL e SQLite — tudo no seu navegador.
O que esta ferramenta faz?
SQL é daquelas linguagens em que você escreve uma vez e depura para sempre: você copia uma consulta de um log do ORM ou da mensagem de um colega e ela chega como um liner gigante de 400 caracteres. Esta ferramenta pega esse paredeão de texto e o reorganiza em várias linhas, com indentação consistente, uma cláusula por linha, condições de JOIN alinhadas e listas longas de SELECT empilhadas verticalmente. É sensível ao dialeto: entende recursos do PostgreSQL como RETURNING, backticks do MySQL, colchetes do T-SQL, listas EXCEPT do BigQuery e particularidades do SQLite — a consulta resultante continua válida no banco para o qual foi escrita. Tudo acontece no seu navegador, usando a biblioteca sql-formatter, que é carregada via CDN apenas na primeira vez que você clica em Formatar. Nada é enviado para um servidor. A semantica da consulta não muda — só espaços, quebras de linha e maiúsculas/minúsculas — então você pode colar o resultado de volta no seu código, em uma migration ou na sua resposta no chat sem se preocupar.
Como usar
Escolha um dialeto que combine com o banco de destino, cole o SQL na caixa de texto, escolha a caixa e a indentação que prefere e clique em Formatar. A saída aparece logo abaixo, com botão de copiar.
- Escolha o dialeto certo — Na dúvida, SQL padrão resolve bem consultas ANSI. Mude para um dialeto específico quando aparecerem identificadores como
`backticks`,[colchetes]ou palavras-chave exclusivas (RETURNING,QUALIFYetc.). - Defina a caixa — MAIÚSCULAS é o padrão de fato em revisões de código. minúsculas fica mais parecido com prosa. Preservar mantém exatamente o que você digitou.
- Defina a indentação — 2 espaços é o padrão mais comum. 4 espaços ajudam quando há muitos CTEs aninhados. Tab casa com editores configurados só para tabulação.
- Formate e copie — Clique em Formatar SQL, confira o resultado e use o botão de copiar para mandar para a área de transferência. Cole de volta no editor, na migration ou no chat.
Regras de formatação em linguagem clara
O formatador percorre o fluxo de tokens do SQL e coloca cada cláusula principal em uma linha própria: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT. Cada JOIN fica em uma linha só, com a condição ON indentada um nível. Itens em listas SELECT, em tuplas VALUES ou em IN (…) são quebrados em linhas quando passam da largura desejada. Subconsultas e CTEs ganham um nível extra de indentação em relação ao pai. Comentários (-- e /* */) são preservados sem alteração.
Resumo dos dialetos
Cada dialeto tem suas regras de aspas em identificadores, concatenação de strings e algumas palavras-chave próprias. Escolha o que combina com o banco de destino.
| Dialeto | O que o formatador respeita |
|---|---|
| SQL padrão | Base ANSI. Aspas duplas para identificadores, aspas simples para strings, || para concatenação. |
| PostgreSQL | Adiciona RETURNING, ON CONFLICT, ::cast, strings com $$ e arrays literais. |
| MySQL | Identificadores com backticks, STRAIGHT_JOIN, SQL_CALC_FOUND_ROWS, aspas duplas em strings. |
| BigQuery | Referências com backticks (projeto.dataset.tabela), EXCEPT em listas de colunas, QUALIFY, UNNEST. |
| T-SQL (SQL Server) | Identificadores entre colchetes, TOP n, OUTPUT INSERTED.*, hints como NOLOCK. |
| SQLite | Quase ANSI; pequenas diferenças em WITHOUT ROWID, tratamento de CONFLICT e tipagem flexível. |
Perguntas frequentes
Minha consulta vai para algum servidor?
Não. A biblioteca sql-formatter é baixada de um CDN público na primeira vez que você clica em Formatar; depois disso a formatação roda 100% no seu navegador. Abra a aba Network e você verá que nenhum request é disparado em formatações seguintes — a biblioteca fica em cache.
Por que o resultado fica um pouco diferente do formatador da minha IDE?
Cada formatador de SQL tem opiniões próprias sobre quebras de linha, vírgula no início versus no fim e como quebrar CASE longos. Esta ferramenta usa a popular biblioteca open source sql-formatter, que também está dentro do DBeaver e de várias extensões de VS Code. Se você quiser bater com o estilo do seu time, rode o resultado pelo formatador padrão do projeto como passada final.
Ele executa minha consulta?
Não. Só acontece formatação (espaços e caixa). A consulta nunca é executada, validada contra um schema ou enviada para qualquer lugar.
Funciona com stored procedures e blocos PL/pgSQL?
Ele formata o SQL de fora muito bem, mas trata o corpo procedural como texto opaco — quebras de linha dentro de BEGIN … END são preservadas, mas não são reescritas. Para procedures complexas, use uma ferramenta específica do banco, como o formatador do PGAdmin.
E se eu deixar SQL padrão, mas usar backticks do MySQL?
Geralmente o resultado ainda fica legível, mas palavras-chave específicas do fornecedor podem não ficar bem indentadas ou com a caixa errada. Selecione o dialeto correspondente para uma saída mais limpa.
Funciona com múltiplas instruções separadas por ponto e vírgula?
Sim. Múltiplas instruções separadas por ; são formatadas independentemente e juntadas com uma linha em branco entre elas. Ótimo para um script de migration inteiro.
EN
PT
ES