Formatador de SQL

Cole uma consulta SQL e receba-a reformatada com cada cláusula (SELECT, FROM, WHERE, JOIN, GROUP BY…) em sua própria linha com indentação.

1.123 visualizações

Como Funciona

Uma consulta SQL longa escrita em uma única linha é difícil de examinar quanto à estrutura — onde termina a cláusula WHERE e onde começa o GROUP BY, qual JOIN pertence a qual tabela? Esta ferramenta pega o SQL bruto e o quebra em linhas separadas em cada limite de cláusula principal: SELECT, FROM, WHERE, toda a família JOIN (INNER JOIN, LEFT JOIN, RIGHT JOIN…), GROUP BY, ORDER BY, HAVING e UNION. Condições encadeadas com AND/OR, e condições de junção depois de ON, recebem um nível de indentação abaixo da cláusula a que pertencem, e as palavras-chave podem opcionalmente ser convertidas para maiúsculas por consistência. Uma consulta como select id,name from users where active=1 and role='admin' order by name vira um bloco com SELECT, FROM, WHERE e ORDER BY começando cada um em sua própria linha e a condição AND indentada abaixo de WHERE — a mesma informação, apenas organizada da forma como seria escrita à mão em uma revisão de código.

Isso importa exatamente onde é mais difícil de fazer manualmente: consultas com várias tabelas unidas, uma subconsulta enterrada dentro de uma cláusula WHERE, ou uma expressão CASE com vários ramos. A indentação consistente é o que permite que um revisor detecte uma condição de junção ausente ou um parêntese fora do lugar em um relance, em vez de ler caractere por caractere.

O Que Você Precisa Saber

Isto é um formatador, não um validador — ele apenas reorganiza espaços em branco e quebras de linha ao redor de um conjunto fixo de palavras-chave que reconhece; nunca analisa a consulta em uma árvore de sintaxe e nunca a executa contra um banco de dados. Um validador genuinamente consciente do dialeto precisaria de um parser completo para cada variante de SQL, porque MySQL, PostgreSQL, SQL Server e SQLite divergem em detalhes como a forma de citar identificadores, funções de data e até mesmo quais instruções são válidas — uma checagem superficial no navegador que fingisse validar qualquer coisa disso só produziria uma falsa confiança. Se a saída formatada parecer estranha, geralmente significa que a entrada já tinha um erro de digitação ou um parêntese desbalanceado; a ferramenta formata ao redor disso em vez de sinalizar o problema.

Como opera puramente sobre o layout do texto, é seguro executá-la em consultas de produção: identificadores, literais de string, valores numéricos e operadores nunca são reescritos, adicionados ou removidos — só o espaçamento muda, além da caixa opcional das palavras-chave. Nada é enviado a lugar nenhum nem executado; a consulta nunca sai do navegador.

Perguntas Frequentes

Isso me diz se meu SQL está correto?

Não — de propósito. A validação real de SQL depende de qual banco de dados você está usando (MySQL, PostgreSQL e SQL Server têm peculiaridades de sintaxe diferentes), e uma ferramenta leve de navegador não consegue fazer isso com honestidade. Isso só reformata o layout, nunca afirma que sua consulta é válida ou inválida.

Isso vai quebrar minha consulta?

Não — ele só insere quebras de linha e indentação, e opcionalmente deixa as palavras-chave em maiúsculas. O texto SQL em si (identificadores, valores, operadores) nunca é alterado.

Posso usar isso em qualquer dialeto de SQL (MySQL, PostgreSQL, SQL Server)?

Sim, no nível do layout — as palavras-chave de cláusula que este formatador reconhece (SELECT, FROM, WHERE, JOIN, GROUP BY etc.) são comuns a praticamente todo dialeto SQL. O que ele não faz é validar sintaxe, funções ou regras de citação específicas do dialeto; essas diferem o suficiente entre os motores para que só executar a consulta contra o banco de dados real possa confirmar a correção.

O que acontece com subconsultas ou CTEs?

Instruções SELECT aninhadas e blocos WITH (common table expression) são formatados recursivamente com as mesmas regras de quebra de cláusula, então uma consulta interna recebe sua própria estrutura indentada dentro da externa — exatamente onde a formatação ajuda mais, já que consultas profundamente aninhadas são as mais difíceis de ler em uma única linha.

A formatação muda o comportamento da minha consulta?

Não. Só o espaço em branco, as quebras de linha e, opcionalmente, a caixa das palavras-chave são tocados. Todo identificador, literal, comparação e operador permanece exatamente como foi escrito, então a consulta formatada é funcionalmente idêntica à original — ela produz o mesmo conjunto de resultados de qualquer forma.

Comentários

Ainda não há comentários — seja o primeiro a escrever um!

Ferramentas Semelhantes