Organize a consulta antes de revisar
Consultas geradas por um ORM ou copiadas de logs costumam chegar sem quebras de linha. O formatador SQL separa cláusulas e aplica indentação aos blocos aninhados. Isso ajuda a localizar colunas, junções e filtros durante a revisão, sem ajustar cada espaço manualmente.
Cole o SQL, selecione o dialeto e escolha dois espaços, quatro espaços ou tabulações. Defina a caixa das palavras-chave e clique em Formatar SQL. A entrada continua disponível ao lado do resultado. Ao alterar o texto ou as opções, o resultado anterior é apagado; formate novamente antes de copiar.
Selecione o banco para o qual a consulta foi escrita
As opções são SQL padrão, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle SQL, BigQuery e Snowflake. O dialeto orienta a leitura de identificadores e construções específicas, como crases no MySQL e colchetes no T-SQL.
Trocar essa opção não converte uma consulta entre bancos. Funções e estruturas de tabelas não são adaptadas. A opção Oracle SQL se destina a consultas e não significa suporte geral a procedimentos armazenados.
Formatação ajuda na leitura, mas não comprova a lógica
Ao separar WHERE de HAVING, fica mais fácil conferir o filtro de linhas e o filtro de grupos. A indentação também evidencia os níveis de CTEs e subconsultas. Ainda assim, uma consulta bem apresentada pode retornar dados inesperados ou referenciar uma coluna inexistente.
A alteração de caixa vale para palavras-chave reconhecidas. Identificadores, nomes de funções e tipos de dados mantêm a escrita original. Os parâmetros não recebem valores, e os comentários são preservados, embora sua disposição possa mudar. Valide o resultado com as ferramentas do banco antes de usá-lo.
Exemplos de SQL formatado
Os exemplos usam dados fictícios, palavras-chave em maiúsculas e dois espaços de indentação. Ao carregar um exemplo, o dialeto correspondente também é selecionado.
JOIN e agregação
Soma pedidos pagos por cliente e filtra os totais. Veja a separação entre condição de junção, filtro de linhas e filtro de grupos.
SELECT
c.id,
c.name,
count(o.id) AS order_count,
sum(o.total) AS revenue
FROM
customers c
JOIN orders o ON o.customer_id = c.id
WHERE
o.status = 'paid'
GROUP BY
c.id,
c.name
HAVING
sum(o.total) > 1000
ORDER BY
revenue DESC;Voltar ao formatador ↑CTE e função de janela
Uma CTE do PostgreSQL usa ROW_NUMBER para classificar pedidos por cliente. A indentação destaca o SELECT interno.
WITH
ranked_orders AS (
SELECT
id,
customer_id,
total,
row_number() OVER (
PARTITION BY
customer_id
ORDER BY
created_at DESC
) AS position
FROM
orders
WHERE
created_at >= date '2024-01-01'
)
SELECT
customer_id,
id,
total
FROM
ranked_orders
WHERE
position = 1
ORDER BY
customer_id;Voltar ao formatador ↑INSERT e comentários
Exemplo MySQL com identificadores entre crases, comentário e uma string com ponto e vírgula, tratado como parte do valor.
-- Fictional seed data
INSERT INTO
`products` (`sku`, `name`, `price`)
VALUES
('DEMO-01', 'Desk lamp; warm light', 29.95),
('DEMO-02', 'Reader''s notebook', 8.50);Voltar ao formatador ↑Perguntas frequentes
Como salvar a consulta formatada?
Use Copiar ou baixe o arquivo formatted.sql. Para iniciar a formatação pelo teclado, pressione Ctrl+Enter ou Command+Enter no macOS.
O SQL é enviado a um servidor?
A formatação roda em um Web Worker no navegador. A ferramenta não envia consultas a uma API de formatação, não se conecta a bancos e não salva a entrada de forma persistente nem na URL.
O formatador melhora o desempenho?
Não. Ele organiza espaços e palavras-chave, sem executar a consulta. Não verifica tabelas, colunas, tipos, permissões ou planos de execução. A análise de desempenho deve ser feita nas ferramentas do seu banco.
Posso incluir várias instruções?
Sim, instruções SQL comuns podem ser separadas por ponto e vírgula. O sinal dentro de uma string reconhecida continua sendo dado. Comandos DELIMITER personalizados, procedimentos e scripts específicos de clientes ficam fora do fluxo suportado.
O que fazer quando a formatação falha?
Confira o dialeto, as aspas e os parênteses. Templates e interpolação de código podem não ser reconhecidos. A entrada aceita até 50.000 caracteres e a tarefa para após dez segundos. Divida scripts longos em trechos menores.
Comentários e placeholders são mantidos?
Os comentários permanecem, mas podem mudar de posição ou espaçamento. Placeholders compatíveis com o dialeto não são preenchidos. Comentários que desativam o formatador podem deixar um trecho sem formatação.
