Formatador e Minificador de SQL online
Cole sua query SQL abaixo para formatar com palavras-chave em maiúsculas e cada cláusula em linha separada.
Por que formatar queries SQL?
Queries SQL complexas com múltiplos JOINs, subconsultas e condições ficam difíceis de ler quando escritas em uma única linha. A formatação com cláusulas em linhas separadas torna a lógica imediatamente clara.
Antes:
select u.nome, p.titulo from usuarios u inner join posts p on u.id = p.usuario_id where u.ativo = 1 and p.publicado = 1 order by p.criado_em desc limit 10Depois:
SELECT u.nome, p.titulo
FROM usuarios u
INNER JOIN posts p ON u.id = p.usuario_id
WHERE u.ativo = 1
AND p.publicado = 1
ORDER BY p.criado_em DESC
LIMIT 10Convenções de estilo SQL
A convenção mais amplamente adotada é usar palavras-chave em UPPERCASE e nomes de tabelas/colunas em lowercase. Isso:
- Distingue visualmente a estrutura da query dos dados
- Segue o padrão de livros, documentações e ferramentas
- Facilita a leitura rápida da lógica de uma query
Diferenças de sintaxe entre dialetos
| Recurso | MySQL | PostgreSQL | SQL Server |
|---|---|---|---|
| Auto-increment | AUTO_INCREMENT | SERIAL ou GENERATED | IDENTITY |
| Limit de registros | LIMIT n | LIMIT n | TOP n |
| Concatenação | CONCAT(a, b) | a || b | a + b |
| Case insensitive | Depende do collation | ILIKE | Depende do collation |
Como comentar SQL de forma eficaz
SQL suporta dois tipos de comentários:
-- Comentário de linha: explica o próximo bloco
/* Comentário de bloco:
útil para desativar trechos temporariamente
ou documentar queries longas */
SELECT
u.id,
u.nome, -- campo exibido na tela
u.email -- usado para envio de notificações
FROM usuarios u
WHERE u.ativo = 1 -- apenas usuários ativosFerramentas de formatação SQL em IDEs
- DBeaver: formatador SQL integrado com suporte a múltiplos dialetos
- DataGrip (JetBrains): reformata SQL com
Ctrl+Alt+L - VS Code + SQLTools: extensão com formatação e execução de queries
- pgAdmin: editor SQL com formatação para PostgreSQL
Perguntas frequentes
SQL é case-sensitive?
Palavras-chave SQL não são case-sensitive: SELECT e select são idênticos. Nomes de tabelas e colunas dependem do banco de dados e da configuração de collation — MySQL em Windows geralmente é case-insensitive, enquanto PostgreSQL é case-sensitive por padrão.
Devo usar UPPER ou lower para palavras reservadas?
A convenção dominante é UPPER para palavras reservadas. Ferramentas profissionais como DBeaver e DataGrip usam uppercase por padrão. Algumas equipes preferem lowercase (estilo dbt), mas a consistência dentro do projeto é o mais importante.
Como formatar SQL com subconsultas longas?
Subconsultas devem ser indentadas em relação à cláusula que as contém:
SELECT *
FROM (
SELECT id, nome, ROW_NUMBER() OVER (PARTITION BY departamento ORDER BY salario DESC) AS rn
FROM funcionarios
) ranked
WHERE rn = 1Formatadores SQL respeitam todos os dialetos?
Formatadores básicos (como este) aplicam convenções genéricas (ANSI SQL). Para funções específicas de um dialeto (ex: ILIKE do PostgreSQL ou TOP do SQL Server), o formatador preserva o texto sem modificação.