TanodTools
PT

Formatar SQL

Cole uma query, escolha seu banco de dados e receba-a de volta indentada, com uma cláusula por linha.

Funciona inteiramente no seu navegador

Indentação

Entrada de até cerca de 10 MB. Só muda o layout: não executa o seu SQL, não confere contra um esquema e não otimiza.

Como formatar uma query SQL

  1. Cole a query na caixa ou clique em Inserir exemplo para ver como funciona.
  2. Escolha seu banco de dados em Dialeto e defina as maiúsculas das palavras-chave e o tamanho da indentação.
  3. A query formatada aparece abaixo enquanto você digita. Copie ou baixe como arquivo .sql.

Como deixar o SQL legível

Um banco de dados lê uma query do mesmo jeito, esteja ela numa linha ou em quarenta, e é por isso que queries copiadas de logs, ORMs e ferramentas de monitoramento tantas vezes chegam como uma única string contínua. Formatar SQL coloca cada cláusula principal (SELECT, FROM, WHERE, GROUP BY, ORDER BY) na própria linha e indenta as colunas, condições e subqueries abaixo dela, para você ver a estrutura da query de relance e encontrar uma condição de join faltando.

O layout segue o dialeto escolhido, porque as palavras e os símbolos mudam de um banco de dados para outro. Um cast do PostgreSQL como price::numeric, um parâmetro numerado como $1, um nome entre crases do MySQL, uma cláusula CONNECT BY do Oracle e um TOP 10 do SQL Server são válidos num dialeto e erro de sintaxe em outro. Marcadores de parâmetros vinculados (?, $1, :name, @name) são reconhecidos e deixados como estão.

As maiúsculas das palavras-chave não afetam como a query roda, então são puro estilo da casa. Um formatador que entende a gramática pode mudá-las com segurança, porque sabe quais palavras são palavras-chave e quais são nomes de colunas ou texto entre aspas.

Dicas

  • Vai comparar uma query antes e depois de uma mudança? Formate as duas com as mesmas configurações e compare em Comparar textos.
  • A query retorna colunas JSON? Cole um valor em Formatar e validar JSON para lê-lo.
  • Precisa renomear uma tabela num script longo? Localizar e substituir resolve isso antes de formatar.

Perguntas frequentes

Meu SQL é enviado para algum lugar?

Não. O código de formatação é um script servido por este site e carregado na primeira vez que você cola uma query; a query em si fica no seu navegador e não é enviada a nenhum servidor.

Por que o dialeto importa?

Os bancos de dados acrescentam sintaxe própria. O PostgreSQL tem casts com :: e parâmetros $1, o SQL Server tem nomes [entre colchetes] e TOP, o MySQL e o MariaDB colocam nomes entre crases e o BigQuery tem suas próprias formas de array e struct. Escolher o dialeto certo permite que o parser aceite a sua query. SQL padrão é a escolha segura quando você não tem certeza, mas é mais rígido com extras de cada fabricante.

Por que vejo um erro numa query que roda bem no meu banco?

O formatador lê o comando inteiro, em vez de só reindentar linhas, então um parêntese ou uma aspa não fechada o interrompe, assim como uma sintaxe que pertence a outro dialeto. A mensagem informa a linha e a coluna em que ele parou, e a correção mais comum é escolher o dialeto correspondente.

Formatar muda o que a query faz?

Só os espaços em branco e, se você quiser, as maiúsculas das palavras-chave. Strings literais, nomes entre aspas e números mantêm o texto, então 'select' entre aspas continua em minúsculas quando você escolhe MAIÚSCULAS.

Posso formatar vários comandos juntos?

Sim. Os comandos separados por ponto e vírgula são formatados um a um, com uma linha em branco entre eles.

Devo usar palavras-chave em maiúsculas ou minúsculas?

Tanto faz; é uma escolha de estilo e os bancos de dados a ignoram. Palavras-chave em maiúsculas são a convenção mais antiga e destacam as cláusulas em texto simples. Minúsculas são comuns em bases de código que já usam um linter ou uma saída de ORM nesse estilo. Manter como digitado não mexe nas suas maiúsculas.