A importância da legibilidade no código SQL
O código SQL é a linguagem universal para manipulação e consulta de dados, mas a ausência de formatação padronizada pode transformar consultas complexas em blocos de texto difíceis de ler e manter. Linhas excessivamente longas, falta de recuo e inconsistência no uso de maiúsculas e minúsculas dificultam a identificação de erros de lógica e atrasam o trabalho de depuração.
A formatação adequada melhora a colaboração entre desenvolvedores, analistas de dados, administradores de banco de dados (DBAs) e pessoal de suporte. Quando o código segue regras claras de estrutura, a leitura flui de maneira natural, permitindo que qualquer membro da equipe compreenda a intenção da consulta rapidamente.
Configurações de formatação e dialetos suportados
Para garantir que o código seja formatado de acordo com as especificidades de cada motor de banco de dados, a ferramenta oferece suporte a dez dialetos SQL diferentes:
- SQL Padrão
- PostgreSQL
- MySQL
- MariaDB
- SQL Server (T-SQL)
- Oracle (PL/SQL)
- SQLite
- BigQuery
- Snowflake
- Spark SQL
Além da seleção do dialeto, é possível personalizar o estilo de saída por meio de parâmetros de recuo e caixa das palavras-chave:
- Recuo: Define o espaçamento lateral das linhas, com opções de 2 espaços, 4 espaços ou tabulação (tab).
- Palavras-chave: Ajusta a caixa das palavras reservadas do SQL para MAIÚSCULAS (maiúsculas), minúsculas (minúsculas) ou Manter (manter a caixa original do texto inserido).
O limite máximo de processamento para o código de entrada é de 300.000 caracteres. Caso o texto inserido ultrapasse esse limite, a ferramenta exibe a mensagem de erro "Esta consulta é grande demais para ser processada. Tente uma menor.". Se o código SQL contiver erros de sintaxe que impeçam a análise, o sistema exibirá o aviso "Não foi possível formatar este SQL — verifique a sintaxe.". Quando ocorre um erro, o resultado gerado anteriormente não é substituído pela mensagem de erro na tela. Ao acionar o botão "Limpar", a ferramenta esvazia as áreas de entrada e saída, oculta os detalhes de eventuais erros e exibe a mensagem "Limpo.".
Métricas de saída do código formatado
Após o processamento instantâneo no navegador, a ferramenta exibe o código estruturado acompanhado de metadados que ajudam a mensurar o tamanho do script:
- Linhas: O número total de linhas geradas no SQL formatado.
- Caracteres: A contagem exata de caracteres presentes no resultado.
- Tamanho: O tamanho físico ocupado pelo código formatado.
Análise estrutural e explicação de cláusulas
Além de organizar visualmente o código, a ferramenta possui uma funcionalidade que gera uma explicação detalhada, cláusula por cláusula, sobre o funcionamento lógico da consulta. Essa análise difere de um plano de execução de banco de dados porque foca estritamente na estrutura lógica e sintática da instrução, e não em como o motor do banco de dados otimizará ou executará a busca fisicamente. Por esse motivo, a explicação funciona mesmo em trechos de SQL parciais ou específicos de determinados fornecedores.
Se a consulta contiver várias instruções, a ferramenta exibe o status no formato "{count} instrução(ões) explicada(s).". Cada instrução individual é identificada pelo rótulo "Instrução {n}". Caso o código enviado possua mais de 25 instruções, a análise será limitada às primeiras 25, exibindo o aviso "Apenas as primeiras 25 instruções são exibidas.".
Tipos de instruções identificados (Kind)
A ferramenta categoriza a ação principal de cada instrução sob a propriedade "Kind", mapeando-a para uma das seguintes definições:
- SELECT: Uma consulta que lê e retorna linhas sem alterar nenhum dado.
- INSERT: Adiciona novas linhas a uma tabela.
- UPDATE: Altera valores em linhas que já existem.
- DELETE: Remove linhas de uma tabela.
- CREATE: Define um novo objeto, como uma tabela, visualização (view) ou índice.
- ALTER: Altera a definição de um objeto existente.
- DROP: Remove permanentemente um objeto do banco de dados.
- TRUNCATE: Esvazia uma tabela, excluindo todas as linhas.
- WITH: Cria um resultado temporário nomeado (CTE) para a consulta que vem a seguir.
- MERGE: Insere, atualiza ou exclui linhas em uma única operação combinada.
- OTHER: Uma instrução SQL.
Papel de cada cláusula (Role)
Para cada componente interno da instrução, a ferramenta detalha a função desempenhada ("Role"):
| Cláusula / Contexto | Descrição do Papel (Role) |
|---|---|
SELECT |
As colunas e expressões retornadas. |
SELECT DISTINCT |
As colunas retornadas, removendo linhas duplicadas. |
FROM |
A tabela (or subconsulta) de onde os dados são lidos. |
JOIN |
Combina cada linha com as linhas correspondentes de outra tabela. |
WHERE |
Mantém apenas as linhas que atendem a esta condição. |
GROUP BY |
Agrupa as linhas para que funções agregadas como COUNT ou SUM possam ser calculadas por grupo. |
HAVING |
Filtra os grupos após o cálculo das funções agregadas. |
ORDER BY |
Ordena as linhas resultantes. |
LIMIT |
Limita a quantidade de linhas retornadas. |
OFFSET |
Ignora um número específico de linhas antes de começar a retornar os resultados. |
UNION |
Combina estes resultados com os de outra consulta. |
VALUES |
Os valores das linhas que estão sendo inseridas. |
INTO |
A tabela que recebe as novas linhas. |
SET |
Os novos valores de coluna a serem atribuídos. |
UPDATE |
A tabela cujas linhas serão alteradas. |
DELETE FROM |
A tabela de onde as linhas serão removidas. |
WITH |
Define um conjunto de resultados temporário nomeado usado a seguir. |
STATEMENT |
A instrução, exibida como está. |
Processamento local e privacidade dos dados
O funcionamento do formatador ocorre inteiramente do lado do cliente (client-side). Isso significa que todo o processamento de formatação, contagem de caracteres e geração de explicações é realizado diretamente no navegador do usuário.
Nenhum dado ou trecho de código SQL digitado ou colado na ferramenta é enviado para servidores externos ou para o BroBroGo. O código permanece restrito ao ambiente local do navegador durante todo o uso. Adicionalmente, a ferramenta armazena os rascunhos de trabalho e as preferências de tema (como a escolha do editor escuro) localmente no navegador do usuário para facilitar acessos futuros.
Perguntas Frequentes (FAQ)
Quais dialetos SQL a ferramenta consegue formatar?
SQL Padrão, PostgreSQL, MySQL, MariaDB, SQL Server (T-SQL), Oracle (PL/SQL), SQLite, BigQuery, Snowflake e Spark SQL. Escolha o dialeto correspondente ao seu banco de dados para que as palavras-chave e as aspas sejam tratadas conforme esperado pelo respectivo motor.
Como funciona a explicação em linguagem simples?
A ferramenta lê a estrutura da consulta — o tipo de instrução e cada cláusula como SELECT, FROM, JOIN, WHERE, GROUP BY e ORDER BY — e explica o que cada uma faz. Ela descreve a estrutura lógica da consulta, e não um plano de execução do banco de dados, por isso funciona mesmo com SQL parcial ou específico de um fornecedor.
É seguro colar consultas de ambientes de produção?
Sim. A formatação e a análise são executadas inteiramente no seu navegador — seu código SQL nunca sai da página.
Existe um limite de tamanho para o SQL que desejo formatar?
Sim, o limite máximo suportado pela ferramenta é de 300.000 caracteres por consulta. Se o seu código exceder esse volume, a ferramenta exibirá um aviso solicitando o envio de uma consulta menor.