Ele formata enquanto você digita — não há nada para apertar. Sua consulta fica nesta página, nunca se olha dentro de textos e comentários, e os identificadores mantêm exatamente as maiúsculas que você escreveu.
Sobre formatar SQL
O SQL chega como uma única linha enorme. Saído do log de um ORM, de um relatório de erro, da área de transferência de alguém. Ele roda perfeitamente e é impossível de ler, e o trecho que você procura está em algum lugar no meio.
Cole e ele volta diagramado: uma cláusula por linha, as colunas indentadas sob o SELECT, os JOIN e suas condições ON alinhados, de modo que o formato da consulta fica visível de relance.
Como usar
- Cole seu SQL na caixa da esquerda — a versão formatada e colorida aparece à direita conforme você digita
- Ajuste a indentação, as maiúsculas das palavras-chave e a posição das vírgulas se quiser — o resultado se atualiza na hora
- Copie ou baixe como arquivo .sql
- Mude para Minificar para voltar a uma linha só; esse modo continua enquanto você digita
Não há botão para apertar para formatar. Os dois únicos botões que mudam o resultado são
Formatar e Minificar, e eles escolhem qual dos dois você está vendo.
A cor vem da mesma leitura da consulta
A saída é colorida passando pelo texto pronto o mesmo tokenizador que o diagramou —
palavras-chave em ciano, textos em amarelo, números em laranja, comentários em cinza,
pontuação em rosa, e os seus nomes de tabelas e colunas deixados sem cor, para que se
destaquem do SQL em volta.
Isso importa além da aparência. Como uma única leitura da consulta produz tanto o layout
quanto a cor, os dois nunca podem discordar: o que está pintado como texto é exatamente o que
o formatador tratou como texto. Se em algum ponto faltar fechar uma aspa, a cor escorre e
mostra onde — o que costuma ser mais rápido do que achar no olho.
Copiar e Baixar entregam o texto puro, nunca a marcação colorida.
Duas coisas com que ele toma cuidado
A maioria dos formatadores rápidos de SQL trabalha com expressões regulares, e estes dois pontos são justo onde essa abordagem desmonta.
- Nunca se olha dentro de textos e comentários. Uma consulta com WHERE note = 'from a, b' tem uma palavra-chave, uma vírgula e um espaço dentro de um literal de texto. Um formatador com regex quebra a linha ali e muda o que a consulta faz. Este aqui lê a consulta em tokens primeiro, então o interior de um literal sai exatamente como entrou — até nos espaços
- Os identificadores mantêm as maiúsculas que você escreveu. Só as palavras-chave viram maiúsculas ou minúsculas. Num servidor que diferencia maiúsculas, userId e userid são colunas diferentes, e um formatador que os «arruma» quebrou a consulta para deixá-la mais bonita
Todos os estilos de aspas são entendidos: 'textos' com escape '', "identificadores entre aspas", crases do MySQL, [colchetes] do SQL Server e $$ aspas de cifrão $$ do PostgreSQL.
As opções
- Indentar com — 4 espaços, 2 espaços ou uma tabulação
- Palavras-chave — MAIÚSCULAS, minúsculas ou exatamente como você escreveu
- Vírgulas — no fim da linha, ou no começo, se esse for o estilo da sua equipe
Minificar
Minificar devolve a consulta a uma linha só. Um espaço só fica onde tirá-lo mudaria o sentido ou criaria um token novo, então o resultado é o mais curto que dá com segurança.
Comentários de linha são descartados, porque -- assim engoliria o resto da linha assim que tudo ficasse numa linha só. Comentários de bloco são mantidos, exatamente como escritos.
Para que as pessoas usam
- Deixar legível uma consulta tirada do log de um ORM
- Arrumar o SQL antes de colocá-lo num pull request ou numa migração
- Entender uma consulta longa que outra pessoa escreveu
- Tirar uma consulta de um relatório de erro e deixá-la em forma de trabalhar
- Fazer uma consulta caber numa linha para um arquivo de configuração ou um comando de shell
- Padronizar o estilo de uma pasta de arquivos .sql antes de enviá-los
Bom saber
- Sua consulta fica nesta página — nada é enviado a lugar nenhum. Útil quando ela tem nomes reais de tabelas e colunas
- Isto diagrama SQL; não verifica se ele é válido. Uma consulta com erro de sintaxe é formatada o melhor possível, não rejeitada
- As aspas próprias de cada dialeto são aceitas, mas isto não reescreve de um dialeto para outro
- Consultas muito grandes não são problema — é um trabalho simples feito na sua própria máquina
- Funciona em todos os navegadores, inclusive no celular
Ferramentas relacionadas
- Formatador de JSON — o mesmo trabalho para JSON
- CSV para JSON — converter os dados que a consulta devolveu
- Localizar e substituir em vários arquivos — trocar um nome de tabela numa pasta inteira de .sql
- Comparador de textos — comparar duas versões de uma consulta
- Testador de regex — montar o padrão antes de buscar com ele