Como usar o formatador de SQL
- Cole uma ou mais instruções SQL na caixa de entrada.
- Selecione o dialeto do seu banco de dados: SQL padrão, MySQL, PostgreSQL, SQL Server (T-SQL), SQLite, MariaDB, BigQuery, Snowflake ou Oracle PL/SQL.
- Escolha a caixa das palavras-chave: MAIÚSCULAS, minúsculas ou manter como foi escrito.
- Defina o tamanho da indentação.
- Clique em Formatar SQL e copie o resultado.
Suas consultas são formatadas no navegador e nunca são enviadas nem armazenadas, então é seguro colar consultas de produção que revelam nomes de tabelas ou lógica de negócio.
Por que formatar SQL?
O SQL ignora espaços em branco: o banco de dados executa uma consulta de uma linha exatamente da mesma forma que uma consulta bem recuada. As pessoas, porém, leem as duas de modos muito diferentes. Consultas copiadas de logs de ORM, ferramentas de monitoramento ou relatórios de consultas lentas costumam chegar em uma única linha longa, o que dificulta ver quais condições pertencem a qual join ou subconsulta.
Um formatador coloca cada cláusula principal (SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY) em sua própria linha e recua as partes aninhadas de forma consistente. Compare:
select u.id,u.email,count(o.id) as orders from users u left join orders o on o.user_id=u.id where u.created_at>='2026-01-01' group by u.id,u.email having count(o.id)>5 order by orders desc;
SELECT
u.id,
u.email,
COUNT(o.id) AS orders
FROM
users u
LEFT JOIN orders o ON o.user_id = u.id
WHERE
u.created_at >= '2026-01-01'
GROUP BY
u.id,
u.email
HAVING
COUNT(o.id) > 5
ORDER BY
orders DESC;
A versão formatada é mais fácil de revisar em um pull request, mais fácil de depurar e gera diffs mais limpos quando alguém adiciona uma coluna ou condição depois.
Por que o dialeto importa
Cada banco de dados estende o SQL padrão com a sua própria sintaxe. Escolher o dialeto certo ajuda o formatador a reconhecer corretamente palavras-chave, operadores e aspas de identificadores:
| Dialeto | Aspas de identificadores | Exemplos de sintaxe específica |
|---|---|---|
| MySQL / MariaDB | `crases` | LIMIT 10, ON DUPLICATE KEY UPDATE |
| PostgreSQL | "aspas duplas" | conversões com ::, RETURNING, ILIKE |
| SQL Server (T-SQL) | [colchetes] | SELECT TOP 10, @variables |
| BigQuery | `crases` | STRUCT, UNNEST, EXCEPT em SELECT * |
| Oracle PL/SQL | "aspas duplas" | FETCH FIRST 10 ROWS ONLY, blocos BEGIN … END; |
Se uma consulta for formatada de forma estranha, por exemplo se um operador for dividido ou uma palavra-chave for tratada como nome de coluna, trocar para o dialeto correto geralmente resolve.
Erros comuns de SQL que a formatação ajuda a identificar
Um formatador não executa nem valida por completo a sua consulta, mas um layout claro torna muitos bugs óbvios:
- Uma vírgula faltando na lista do select.
SELECT id name FROM usersé SQL válido, mas retornaidcom o aliasname. Com uma coluna por linha, a vírgula ausente se destaca. - Um filtro sobre uma tabela de outer join no
WHERE.LEFT JOIN orders o … WHERE o.status = 'paid'transforma silenciosamente o outer join em um inner join. Mova a condição para a cláusulaONse quiser manter as linhas sem correspondência. ANDeORmisturados sem parênteses. OANDtem precedência sobre oOR, entãoa OR b AND csignificaa OR (b AND c). Acrescente parênteses para deixar a intenção explícita.- Parênteses ou aspas sem fechar. Quando o recuo da saída de repente se desvia, procure um parêntese não fechado ou um literal de texto logo antes desse ponto.
Dicas e boas práticas
- Palavras-chave em maiúsculas são uma convenção muito difundida porque separam a sintaxe do SQL dos nomes das suas tabelas e colunas; minúsculas são igualmente válidas. Escolha um padrão por projeto.
- Sempre use alias para as tabelas em consultas com várias tabelas e qualifique os nomes das colunas (
u.idem vez deid). - Nunca monte SQL concatenando entradas do usuário. Use consultas parametrizadas ou prepared statements para evitar SQL injection.
- Armazena timestamps como inteiros? Use o conversor de timestamp Unix para ver o que um valor significa e o gerador de UUID para chaves primárias de teste.
Perguntas frequentes
A formatação muda o que a minha consulta faz?
Não. O formatador só altera espaços em branco, quebras de linha e, se você escolher, a caixa das palavras-chave. Identificadores, literais de texto e a lógica da consulta permanecem iguais.
O formatador de SQL verifica se a minha consulta é válida?
Não por completo. Ele divide a consulta em tokens para organizá-la, então uma entrada muito quebrada pode gerar uma saída estranha, mas não verifica se as tabelas ou colunas existem nem se a instrução seria executada. Use o seu banco de dados ou um EXPLAIN para isso.
Posso formatar várias instruções de uma vez?
Sim. Separe as instruções com ponto e vírgula e cada uma será formatada em sequência.
As palavras-chave do SQL devem ser em maiúsculas?
As palavras-chave do SQL não diferenciam maiúsculas de minúsculas em nenhum dos principais bancos de dados, então é apenas uma questão de estilo. Maiúsculas são tradicionais e comuns em documentações; muitas equipes modernas preferem minúsculas. O que importa é a consistência.
Atualizado