Formatador de SQL
Formate consultas SQL com cada cláusula em sua própria linha, listas de colunas indentadas e subconsultas aninhadas. Palavras-chave dentro de literais de string são deixadas intactas, algo que formatadores ingênuos fazem errado.
- Os arquivos nunca saem do seu dispositivo
- Grátis, sem cadastro
- Sem marcas d'água
- Funciona offline depois de carregado
Como formatador de sql
- 1
Cole sua consulta
Uma linha longa, ou algo já semi-formatado.
- 2
Defina suas preferências
Tamanho de indentação, e se as palavras-chave são colocadas em maiúsculas.
- 3
Copie o resultado
Pronto para colar de volta no seu editor ou migração.
O erro específico que trava formatadores de SQL baseados em expressões regulares
Um formatador que coloca palavras-chave em maiúsculas comparando palavras inteiras com uma expressão regular não tem como saber se uma dada ocorrência de "order" é a palavra-chave SQL `ORDER` (como em `ORDER BY`) ou um valor de string literal que por acaso contém essa palavra — uma consulta filtrando linhas `WHERE description = 'the order from stock'` tem a palavra "order" dentro de uma string entre aspas, não funcionando de jeito nenhum como palavra-chave. Um formatador ingênuo coloca em maiúsculas cada palavra correspondente não importa o contexto, corrompendo o valor de string literal para `'the ORDER FROM stock'` e mudando silenciosamente o que a consulta realmente filtra. Tokenizar corretamente a consulta — reconhecendo os limites de strings entre aspas antes de decidir o que conta como palavra-chave — é o que previne isso, e é precisamente a classe de erro que só aparece com dados reais contendo palavras que por acaso coincidem com palavras-chave SQL, por isso é fácil de passar despercebido ao testar com consultas de exemplo simples.
O que "formata mas não analisa" significa na prática
Esta ferramenta reconhece a estrutura de cláusulas comum compartilhada entre PostgreSQL, MySQL, SQL Server, SQLite e Oracle — SELECT, FROM, WHERE, JOIN, GROUP BY, ORDER BY e seus parentes — bem o bastante para indentar cada cláusula em sua própria linha e aninhar corretamente subconsultas. Ela não constrói um entendimento completo da gramática completa de nenhum banco de dados específico, incluindo extensões específicas de fornecedor como a sintaxe de array do PostgreSQL ou a colocação da cláusula `TOP` do SQL Server. A consequência prática é que sintaxe específica de dialeto passa através do formatador intocada em vez de causar um erro, mas também não vai receber a mesma indentação cuidadosa que as cláusulas comuns recebem — uma troca razoável por suportar cinco dialetos com um único formatador em vez de precisar de uma ferramenta separada por motor de banco de dados.
Por que formatar não pode mudar o que uma consulta faz
Palavras-chave SQL não diferenciam maiúsculas de minúsculas pela própria especificação da linguagem — `SELECT`, `Select` e `select` são idênticas para qualquer motor SQL — o que é precisamente o que torna colocá-las em maiúsculas ou minúsculas uma operação puramente cosmética sem nenhum risco de alterar o comportamento. O mesmo se aplica aos espaços em branco e quebras de linha que este formatador adiciona: uma consulta espalhada por doze linhas indentadas roda identicamente à mesma consulta amontoada em uma. Nada da formatação toca os tokens reais que determinam quais tabelas são lidas, quais condições filtram linhas, ou quais valores são inseridos — apenas como essa mesma consulta lógica é disposta visualmente para um humano que a lê depois.
Lendo uma migração longa ou uma consulta gerada
Uma consulta gerada por um ORM, exportada de uma interface gráfica de banco de dados, ou escrita como uma única linha extensa durante uma migração apressada geralmente é funcionalmente correta mas genuinamente difícil de revisar para uma pessoa exatamente como está escrita — uma consulta com quinze joins sem quebras de linha dificulta ver quais condições pertencem a qual join, ou se uma cláusula WHERE está filtrando a tabela correta. Reformatá-la com cada cláusula e cada join em sua própria linha, indentado para refletir a estrutura real da consulta, geralmente é a forma mais rápida de realmente entender o que uma consulta longa gerada faz antes de aprová-la em uma revisão de código ou depurar por que retorna as linhas erradas.
Perguntas frequentes
Isso vai mudar o que minha consulta faz?
Não. Apenas espaços em branco e capitalização de palavras-chave mudam — nenhuma cláusula é reordenada nem token reescrito. Palavras-chave SQL não diferenciam maiúsculas de minúsculas, então colocá-las em maiúsculas não pode alterar o comportamento.
E o texto entre aspas?
É deixado exatamente como escrito. O formatador tokeniza a consulta antes de tocar em qualquer coisa, então uma string como 'check the order from stock' mantém seu "order" e "from" em minúsculas em vez de serem colocados em maiúsculas como palavras-chave. Formatadores baseados em expressões regulares erram isso rotineiramente.
Quais dialetos de SQL funcionam?
A estrutura de cláusulas comum compartilhada por PostgreSQL, MySQL, SQL Server, SQLite e Oracle. Formata em vez de analisar, então sintaxe específica de dialeto passa intocada em vez de causar um erro — mas também não será indentada de forma especial.
Minhas consultas são enviadas para algum lugar?
Não. A formatação acontece no seu navegador. Isso importa porque consultas reais carregam nomes de tabela, nomes de coluna e às vezes dados literais de clientes — nada disso deveria ser colado no servidor de um estranho.
Tarefas comuns de formatador de sql
Você também pode precisar
Formatador de JSON
Formate, valide e minifique JSON instantaneamente
Formatador de JavaScript
Formate JS e TypeScript com um analisador real
Formatador de XML
Indente XML e detecte tags desbalanceadas
Codificador e decodificador Base64
Codifique e decodifique Base64 e Base64URL
Formatador de CSS
Embeleze ou minifique folhas de estilo
Minificador de CSS
Reduza folhas de estilo com um minificador de verdade, consciente de CSS
Gerador de hash
MD5, SHA-1, SHA-256, SHA-384 e SHA-512
Formatador de HTML
Embeleze e indente HTML corretamente