SQL legível no dialeto que você usa
Este formatador SQL aceita consultas de qualquer tamanho, até várias instruções de uma vez, e as indenta de forma consistente: uma cláusula por linha, colunas e condições alinhadas e palavras-chave na caixa que você preferir. Ele entende a sintaxe de mais de quinze dialetos, do PostgreSQL, MySQL e SQL Server ao BigQuery, Snowflake e Oracle PL/SQL, então operadores, aspas e placeholders específicos de cada dialeto ficam intactos. Mude para Minificar para transformar a consulta de volta em uma única linha para um arquivo de configuração ou uma string no seu código. Tudo roda no seu navegador; suas consultas nunca são enviadas.
Como formatar uma consulta SQL
- 1Cole seu SQL no painel da esquerda ou comece pela consulta de exemplo.
- 2Escolha o dialeto em que a consulta foi escrita. Standard SQL funciona para a maioria das consultas simples; escolher o dialeto certo importa para coisas como os casts
::do PostgreSQL, os identificadores com crase do MySQL ou os[brackets]do SQL Server. - 3Defina a caixa das palavras-chave e a indentação, e abra Mais opções para a caixa de tipos de dados e funções, indentação tabular, posição de
AND/ORe linhas em branco entre instruções. - 4A consulta formatada aparece à direita enquanto você digita. Se a consulta não puder ser analisada, a linha e a coluna do problema são mostradas.
- 5Copie o resultado, baixe como arquivo
.sqlou escolha Minificar para reduzi-lo a uma linha.
Por que formatar SQL?
SQL é escrito uma vez e lido muitas: em code review, num log de consultas lentas, numa migração que alguém precisa depurar às 2 da manhã. Uma consulta gerada por um ORM ou copiada de um log costuma chegar como uma linha enorme. Colocar cada cláusula na própria linha e indentar as subconsultas deixa a estrutura visível: quais tabelas são unidas, por quais colunas e quais condições valem onde.
Uma formatação consistente também deixa os diffs menores. Quando todo o time formata as consultas do mesmo jeito, uma condição alterada aparece como uma única linha modificada em vez de um parágrafo reorganizado.
Opções de formatação explicadas
- Caixa das palavras-chave
- UPPER faz SELECT, FROM e WHERE se destacarem dos nomes de tabelas e colunas, a convenção mais comum. lower combina com times que acham as maiúsculas poluídas. Preservar mantém as palavras-chave como você digitou.
- Indentação
- Dois ou quatro espaços, ou tabs. Os estilos tabulares completam as palavras-chave até uma coluna de largura fixa para que as expressões fiquem alinhadas depois delas.
- Posição de AND / OR
- No início coloca cada operador lógico no começo da linha, o que facilita comentar uma condição; no fim o deixa no final da linha anterior.
- Largura da expressão
- Expressões entre parênteses menores que esse número de caracteres ficam em uma linha; as maiores são quebradas.
- Operadores compactos
- Escreve a+b em vez de a + b. Mais compacto, porém mais difícil de ler.
Escolhendo o dialeto certo
Os dialetos SQL divergem em mais coisas do que você imagina: como os identificadores são delimitados ("name", `name` ou [name]), como é um placeholder (?, $1, :name, @param) e quais palavras são reservadas. O formatador usa uma gramática separada para cada dialeto, então não confunde o corpo de uma função $$ do PostgreSQL ou um comentário # do MySQL com outra coisa.
Se aparecer um erro de análise numa consulta que você sabe que é válida, o dialeto é a primeira coisa a verificar. Standard SQL é rigoroso de propósito e não conhece todas as extensões de cada fornecedor.
Minificando SQL
Minificar faz o contrário de formatar: remove os comentários e reduz todo o espaço em branco a espaços simples, gerando uma linha que você pode colar num arquivo YAML, numa variável de ambiente ou numa string literal. Strings literais, identificadores entre aspas e corpos com dollar-quoting são copiados exatamente, então um valor como 'two spaces' mantém os dois espaços. Hints do otimizador escritos como /*+ … */ e os comentários executáveis do MySQL /*! … */ são mantidos, porque mudam como a consulta é executada.
Trabalhando com JSON? O formatador JSON faz o mesmo com documentos JSON, e o minificador de código cuida de CSS, JavaScript e HTML.
Perguntas frequentes
- Meu SQL é enviado para um servidor?
- Não. A formatação e a minificação rodam inteiramente no seu navegador, então consultas com nomes de tabelas, dados de clientes ou credenciais nunca saem do seu dispositivo.
- Quais dialetos SQL são suportados?
- Standard SQL, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Amazon Redshift, Spark SQL, Hive, Trino e Presto, DuckDB, ClickHouse, IBM Db2 e Db2 for IBM i, SingleStoreDB, TiDB e Couchbase N1QL.
- A formatação muda o que minha consulta faz?
- Não. Só mudam os espaços em branco e, se você escolher, a caixa das palavras-chave, tipos de dados e funções. Identificadores entre aspas e strings literais nunca são alterados. Mudar a caixa de identificadores sem aspas é seguro na maioria dos bancos de dados, mas deixe em Preservar se o seu banco diferencia maiúsculas e minúsculas neles.
- Por que aparece um erro de análise?
- Ou a consulta tem um erro de sintaxe, como um parêntese ou aspas não fechados, ou usa uma sintaxe que o dialeto selecionado não inclui. A mensagem mostra a linha e a coluna onde a análise parou; tente o dialeto que seu banco de dados realmente usa.
- Posso formatar várias instruções de uma vez?
- Sim. Separe-as com ponto e vírgula e cada uma é formatada por vez, com o número de linhas em branco entre elas que você escolher.
- Os comentários são mantidos?
- Ao formatar, sim: comentários de linha e de bloco ficam onde estavam. Minificar os remove, exceto hints do otimizador e comentários executáveis do MySQL.
- Como minificar uma consulta SQL em uma linha?
- Escolha Minificar no topo da ferramenta. Os comentários são removidos e os espaços reduzidos, enquanto strings literais e identificadores entre aspas ficam exatamente como foram escritos.