Formatador e Embelezador de SQL

Cole uma consulta bagunçada e receba SQL limpo e indentado de forma consistente. Suporta 17 dialetos, caixa das palavras-chave e um minificador de um clique, tudo no seu navegador.

Roda no seu navegadorSem cadastroNada é enviado

SQL formatado

Como usar: Formatador SQL

  1. Cole uma ou mais instruções SQL na caixa de entrada ou abra um arquivo .sql.
  2. Escolha o dialeto do seu banco de dados para que a sintaxe dele, como casts ::, [colchetes], crases ou strings $$, seja interpretada corretamente.
  3. Defina a caixa das palavras-chave (MAIÚSCULAS, minúsculas ou preservar), a indentação e o número de linhas em branco entre instruções.
  4. Mude para Minificar para remover comentários e espaços para logs, ORMs ou parâmetros de URL.
  5. Copie o resultado ou baixe-o como arquivo .sql.

Por que formatar SQL?

Consultas copiadas de logs de ORM, planos de execução ou código da aplicação costumam chegar em uma única linha longa. Colocar cada cláusula (SELECT, FROM, JOIN, WHERE, GROUP BY) em sua própria linha e indentar colunas e condições deixa a lógica legível. Isso também diminui os diffs no code review e ajuda a perceber uma condição de join faltando ou um OR fora do lugar.

Convenções de estilo SQL

  • Palavras-chave em maiúsculas (SELECT, WHERE) separam a sintaxe SQL dos nomes de tabelas e colunas. A maioria dos guias de estilo recomenda isso, embora minúsculas sejam populares em equipes de dbt e analytics.
  • Uma coluna por linha faz com que adicionar ou remover colunas gere um diff de uma linha.
  • Indentação consistente (2 ou 4 espaços) dentro de cláusulas e subconsultas mostra o aninhamento num relance.
  • Terminadores de instrução: termine toda instrução com ; para que scripts com várias instruções não sejam ambíguos.

Dialetos SQL suportados

SQL padrão, PostgreSQL, MySQL, MariaDB, SQLite, Microsoft SQL Server (T-SQL), Oracle PL/SQL, Google BigQuery, Snowflake, Amazon Redshift, Spark SQL, Trino/Presto, Hive, IBM Db2, Couchbase N1QL, SingleStore e TiDB. Se uma consulta não for interpretada, tente um dialeto mais específico: @variables, parâmetros $1 e operadores específicos de cada fornecedor só são reconhecidos no próprio dialeto.

O que o minificador faz

O modo de minificação remove comentários --, # e /* */, reduz espaços e quebras de linha a espaços simples e elimina os espaços ao redor de vírgulas e parênteses. Literais de string e identificadores entre aspas ('…', "…", `…`, […], $$…$$) são copiados byte a byte, então o significado da consulta nunca muda.

Perguntas frequentes

Meu SQL é enviado para um servidor?
Não. A formatação usa a biblioteca open source sql-formatter rodando no seu navegador. Consultas com nomes de tabelas, dados de clientes ou credenciais ficam na sua máquina.
A formatação muda o que a consulta faz?
Não. Só mudam espaços, quebras de linha e (se você escolher) a caixa das palavras-chave. Identificadores, literais de string e comentários são mantidos como foram escritos.
Por que recebo um erro de parse em SQL válido?
Provavelmente a consulta usa sintaxe específica de outro banco de dados. Selecione o dialeto correspondente, por exemplo PostgreSQL para casts ::type ou SQL Server para nomes [bracketed] e @params.
Posso formatar várias instruções de uma vez?
Sim. Separe as instruções com ponto e vírgula. Você pode escolher quantas linhas em branco ficam entre elas na saída.
A caixa das palavras-chave vai mudar os nomes das minhas colunas?
Não. Só palavras reservadas, tipos de dados e funções embutidas têm a caixa alterada. Nomes de tabelas e colunas mantêm a grafia original.

Ferramentas relacionadas