Formatador de SQL
Cole SQL e ele se organiza — strings e comentários permanecem intactos.
SQL formatado
Como usar
- Cole seu SQL na caixa — ele é formatado enquanto você digita, sem botão para clicar.
- Escolha maiúsculas ou minúsculas para as palavras reservadas e 2 ou 4 espaços de indentação; o resultado é atualizado imediatamente.
- Confira a contagem de linhas e copie o resultado ou baixe-o como arquivo .sql.
Exemplo
Entrada
select u.id, u.nome, count(o.id) as pedidos from usuarios u left join pedidos o on o.usuario_id = u.id where u.ativo = 1 and o.criado_em >= '2026-01-01' group by u.id, u.nome order by pedidos desc limit 10;
Formatado
SELECT u.id, u.nome, count(o.id) AS pedidos FROM usuarios u LEFT JOIN pedidos o ON o.usuario_id = u.id WHERE u.ativo = 1 AND o.criado_em >= '2026-01-01' GROUP BY u.id, u.nome ORDER BY pedidos DESC LIMIT 10;
Apenas as regras padrão: cada cláusula começa uma linha, os itens de lista recebem dois espaços e o AND é indentado. count(...) é nome de função, então mantém as minúsculas que você digitou; a string de data fica intacta.
Regras, limites e problemas conhecidos
- Este é um formatador de espaços em branco: ele não analisa, valida nem executa SQL. SQL inválido ainda é organizado.
- Não há seletor de dialeto. Aspas simples, aspas duplas, crases, colchetes e strings $tag$ são reconhecidos, então SQL de MySQL, PostgreSQL, SQL Server e SQLite pode ser colado como está.
- Apenas palavras reservadas têm a caixa alterada. Nomes de função, nomes de tipo (count, int, varchar) e identificadores entre aspas são impressos exatamente como digitados; coloque identificadores entre aspas se seu banco diferenciar maiúsculas.
- Strings, números e comentários nunca são reescritos. Um comentário -- força uma quebra de linha, e comentários nunca são removidos. Não há modo de minificação.
- O resultado tem realce de sintaxe (palavras-chave, identificadores, strings, números, comentários) para facilitar a leitura da estrutura. O realce é apenas visual: Copiar e Baixar sempre produzem o texto formatado simples.
- As quebras de linha ocorrem apenas nos limites de cláusula, lista, CASE, subconsulta, janela e coluna de DDL. Argumentos de função e listas IN (...) ficam em uma linha; linhas longas quebram visualmente no painel, enquanto Copiar e Baixar mantêm o texto exato sem quebra.
- As strings são lidas com escapes '' e \'. Uma string SQL padrão que termina com contrabarra, como 'C:\', pode ser lida como não fechada: você recebe um aviso e sua entrada permanece intacta.
- Sem procedures armazenadas, DELIMITER ou blocos PL/SQL; sem upload de arquivo, parâmetros de URL ou histórico. Tudo roda no seu navegador: nada é enviado ou armazenado.
- Acima de 200.000 caracteres o resultado é atualizado cerca de 0,6 s depois de você parar de digitar; o texto nunca é truncado. A saída usa LF e não termina com quebra de linha; a formatação é idempotente.
Ferramentas relacionadas
O que as pessoas costumam precisar depois que a consulta está legível.