Pular para o conteúdo
Toolbench

Tente: comprimir pdf, foto do iphone, 15% de 240

    Formatar SQL

    Cole a consulta numa linha só e receba ela organizada, cláusula por cláusula.

    O que sai

    A resposta aparece aqui enquanto você digita.

    Guia: Da linha única à consulta que dá para ler3 min de leitura

    Da linha única à consulta que dá para ler

    Consulta copiada de log, de ORM ou de ferramenta de monitoramento chega numa linha só, com trezentos caracteres. Cole aqui e ela sai com uma cláusula por linha — SELECT, FROM, JOIN, WHERE, GROUP BY — as colunas uma embaixo da outra e as condições do WHERE separadas em AND e OR. É o jeito mais rápido de achar o JOIN que falta ou a condição que filtra demais.

    As palavras-chave podem ficar em maiúsculas, em minúsculas ou como vieram; o recuo, em 2 ou 4 espaços. Nomes de tabela, textos entre aspas e números não são tocados: a consulta formatada faz exatamente o mesmo que a original. Comentários (-- e /* */) continuam no lugar.

    Escolha o dialeto do seu banco

    Cada banco tem seus detalhes. O MySQL e o MariaDB usam crase nos nomes, o SQL Server usa colchetes e TOP, o PostgreSQL tem :: para cast, $1 para parâmetro e aspas duplas em identificadores, o Oracle tem blocos PL/SQL, e o BigQuery aceita nomes com hífen entre crases. Com o dialeto certo, esses trechos são entendidos; com o errado, podem virar erro. Na dúvida, o SQL padrão serve para consultas simples.

    Quando a leitura falha, a mensagem diz a linha e o trecho onde parou. Quase sempre é uma aspa aberta, um parêntese sem par ou sintaxe de outro banco.

    Nada é enviado

    Uma consulta mostra o esquema do banco e, muitas vezes, dados de verdade no WHERE: CPF, e-mail, número de pedido. A formatação acontece nesta aba e nada sai do computador. Para comparar a consulta antes e depois de uma mudança, use o comparador de textos; para ler o JSON que a consulta devolveu, o formatador de JSON.

    Perguntas frequentes

    Formatar muda o que a consulta faz?

    Não. Muda só espaços, quebras de linha e, se você pedir, a caixa das palavras-chave como SELECT e JOIN. Nomes de tabela e coluna, textos e números ficam exatamente como estavam. A consulta formatada devolve o mesmo resultado.

    Por que o dialeto importa?

    Porque os mesmos caracteres querem dizer coisas diferentes. O MySQL usa crase nos nomes, o SQL Server usa [colchetes], o PostgreSQL usa :: para cast e $1 para parâmetro, e o Oracle tem blocos PL/SQL próprios. Com o dialeto errado, parte disso é lida como erro ou quebrada no lugar errado.

    Diz que não deu para ler a consulta. O que está errado?

    Quase sempre uma aspa ou um parêntese sem fechar, ou sintaxe de outro banco. A linha da mensagem é onde a leitura parou. Confira as aspas perto dela e depois tente o dialeto do banco para o qual a consulta foi escrita.

    Os comentários são mantidos?

    Sim. Comentários de linha (--) e de bloco (/* */) ficam onde estavam, junto da cláusula ao lado.

    Minha consulta é enviada para um servidor?

    Não. A formatação roda nesta aba, então nomes de tabela, dados de cliente no WHERE e o esquema interno não saem do computador. Depois de carregada, a página funciona sem internet.

    Na mesma gaveta