Como usar
- Cole uma ou mais instruções SQL ou pressione “Testar um exemplo”.
- Escolha o dialeto do seu banco de dados para que as palavras-chave, os delimitadores e os operadores sejam reconhecidos.
- Defina a capitalização das palavras-chave e o recuo. A consulta formatada aparece à direita enquanto você digita.
- Pressione Minificar para obter uma versão em uma única linha. Depois, copie o resultado ou baixe-o como arquivo .sql.
Como funciona
A formatação usa a biblioteca de código aberto sql-formatter. Ela divide a consulta em tokens usando as regras do dialeto escolhido, coloca cada cláusula principal (SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY…) em uma linha própria, recua as listas de colunas e as condições e aplica a capitalização escolhida para as palavras-chave. Ela altera os espaços em branco e, se solicitado, a capitalização das palavras-chave; identificadores, literais de string e comentários são mantidos. É importante escolher o dialeto correto: por exemplo, no MySQL, nomes são delimitados por crases; no SQL Server, por colchetes; e no PostgreSQL, $$ inicia o corpo de uma função.
O formatador é uma ferramenta de organização visual, não um banco de dados. Ele não verifica se tabelas ou colunas existem nem valida toda a gramática, portanto pode formatar SQL inválido sem avisar. Quando não consegue interpretar a entrada, por exemplo, devido a um parêntese sem fechamento, informa a linha e a coluna em que parou.
A minificação funciona de outra forma: mantém todos os tokens, reduz cada sequência de espaços em branco a um único espaço e remove comentários (dicas do otimizador, como /*+ INDEX(t) */, e comentários MySQL /*! … */ são mantidos porque alteram o comportamento). Strings, identificadores entre aspas e corpos entre aspas dollar-quoted são copiados sem alterações. Se uma aspa ou um comentário não for fechado, a minificação para com um erro em vez de tentar adivinhar.
Exemplos
Ler uma consulta de um registro
Um registro de consultas lentas mostra uma linha com 400 caracteres. Com o dialeto MySQL e palavras-chave em maiúsculas, ela se transforma em um bloco legível, com cada condição de JOIN e WHERE em uma linha própria, facilitando a identificação do índice ausente.
Estilo consistente para revisão de código
Uma equipe formata cada migração com o dialeto PostgreSQL, palavras-chave em minúsculas e recuo de 4 espaços antes de fazer o commit, para que as diferenças mostrem apenas alterações reais.
Incorporar SQL ao código
A minificação transforma uma consulta de relatório comentada e com várias linhas em uma única linha, como SELECT id, name FROM users WHERE active = 1 ORDER BY name, pronta para ser inserida em uma string de um script.
Perguntas frequentes
Quais bancos de dados são compatíveis?
SQL padrão, MySQL, MariaDB, PostgreSQL, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Redshift, Spark SQL, Hive, Trino/Presto, DuckDB, IBM Db2, SingleStoreDB, TiDB e Couchbase N1QL.
A formatação vai alterar o que minha consulta faz?
Não deveria: apenas os espaços em branco e, se selecionada, a capitalização das palavras-chave são alterados. A capitalização das palavras-chave não afeta o SQL. Ainda assim, revise o resultado gerado antes de executá-lo em dados de produção, especialmente se houver recursos específicos de um dialeto menos comum.
Por que apareceu a mensagem “não foi possível formatar”?
O tokenizador encontrou algo que não conseguiu posicionar, geralmente um colchete ou uma aspa sem fechamento, ou uma sintaxe de outro dialeto. Confira a linha e a coluna indicadas na mensagem e verifique se o dialeto selecionado corresponde ao seu banco de dados.
A ferramenta valida meu SQL?
Não. A ferramenta não se conecta a um banco de dados e não conhece seu esquema. Uma consulta pode ser formatada e ainda assim falhar ao ser executada.
Privacidade
Seu SQL é formatado no navegador com JavaScript. Ele não é enviado, armazenado nem incluído em análises, e a ferramenta nunca se conecta a um banco de dados.