PK Systems PK Systems
Ferramentas para devs

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.

Formatador de SQL

SQL formatado

Clique em "Formatar SQL" para formatar a sua consulta.

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.

  1. 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, QUALIFY etc.).
  2. Defina a caixaMAIÚ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.
  3. 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.
  4. 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ãoBase ANSI. Aspas duplas para identificadores, aspas simples para strings, || para concatenação.
PostgreSQLAdiciona RETURNING, ON CONFLICT, ::cast, strings com $$ e arrays literais.
MySQLIdentificadores com backticks, STRAIGHT_JOIN, SQL_CALC_FOUND_ROWS, aspas duplas em strings.
BigQueryReferê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.
SQLiteQuase 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.