A legibilidade do código SQL é um fator crítico no desenvolvimento de software, na análise de dados e na administração de bases de dados. Consultas complexas, muitas vezes geradas automaticamente por ferramentas externas ou escritas de forma apressada, tornam-se rapidamente difíceis de ler, depurar e manter. O Formatador de SQL resolve este problema ao reestruturar o código de forma instantânea, aplicando regras consistentes de indentação e capitalização, ao mesmo tempo que oferece uma análise detalhada da estrutura lógica da consulta.
O processamento é realizado inteiramente no navegador do utilizador, garantindo que os dados não são enviados para servidores externos. Adicionalmente, a ferramenta disponibiliza uma explicação em linguagem simples que decompõe a consulta cláusula por cláusula, facilitando a compreensão do fluxo de dados.
Funcionamento e Parâmetros de Configuração
O Formatador de SQL ajusta a apresentação visual do código com base em três parâmetros principais definidos pelo utilizador:
- Dialeto: A formatação respeita as especificidades sintáticas de dez dialetos distintos: Standard SQL, PostgreSQL, MySQL, MariaDB, SQL Server (T-SQL), Oracle (PL/SQL), SQLite, BigQuery, Snowflake e Spark SQL. A seleção do dialeto correto garante que elementos como delimitadores de identificadores e funções nativas sejam tratados de acordo com as regras do respetivo motor de base de dados.
- Recuo: Define o estilo de indentação para a estruturação hierárquica do código, permitindo escolher entre 2 espaços, 4 espaços ou tabulação (tab).
- Palavras-chave: Controla a capitalização dos comandos SQL (como
SELECT,FROM,WHERE), com as opções de converter para MAIÚSCULAS, minúsculas ou Manter o formato original.
A ferramenta aceita consultas com um comprimento máximo de 300 000 caracteres. Caso o código inserido exceda este limite, é apresentada a mensagem "Esta consulta é demasiado grande para ser processada. Tente uma mais pequena.". Se o código contiver erros de sintaxe que impeçam a reestruturação, o sistema exibe o aviso "Não foi possível formatar este SQL — verifique a sintaxe.". Nestas situações de erro, o resultado formatado anteriormente não é substituído, permitindo ao utilizador corrigir o código sem perder o trabalho anterior. O botão "Limpar" redefine a interface, apagando as áreas de entrada e saída, ocultando detalhes de erros e exibindo a mensagem "Limpo.".
Métricas de Saída do Código Formatado
Após o processamento, a ferramenta devolve o código SQL reestruturado e apresenta métricas precisas sobre o resultado:
- Linhas: O número total de linhas que compõem o SQL formatado.
- Caracteres: A contagem exata de caracteres presentes no código final.
- Tamanho: O peso do ficheiro ou volume de dados do SQL formatado.
Explicação Estrutural Cláusula por Cláusula
Para além da formatação visual, a ferramenta analisa a estrutura da consulta e gera uma explicação detalhada em linguagem simples. Esta funcionalidade difere dos planos de execução das bases de dados (como o comando EXPLAIN do PostgreSQL ou MySQL), pois não descreve como o motor de base de dados vai executar a consulta fisicamente, mas sim a lógica estrutural do código. Devido a esta abordagem, a explicação funciona mesmo em consultas parciais ou que utilizem sintaxe específica de um fornecedor.
A análise suporta a decomposição de múltiplas instruções numa única consulta, exibindo a mensagem "{count} instrução(ões) explicada(s).". Cada instrução individual é identificada pelo rótulo "Instrução {n}". Se a consulta contiver mais de 25 instruções, a ferramenta processa e exibe apenas as primeiras 25, acompanhadas da nota "Apenas as primeiras 25 instruções são exibidas.".
Tipos de Instruções Identificados
A ferramenta categoriza a natureza global de cada instrução (Kind) de acordo com as seguintes definições:
| Tipo de Instrução | Descrição Apresentada |
|---|---|
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 da base 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 numa única operação combinada. |
OTHER |
Uma instrução SQL. |
Papel das Cláusulas na Consulta
Cada componente interna da instrução é analisada individualmente, mapeando o seu papel (Role) específico no fluxo de dados:
SELECT: As colunas e expressões retornadas.SELECT DISTINCT: As colunas retornadas, removendo linhas duplicadas.FROM: A tabela (ou 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á.
Privacidade e Persistência Local
O processamento dos dados é executado localmente no navegador do utilizador. O código SQL inserido não é enviado para os servidores do BroBroGo, permanecendo estritamente no ambiente local do cliente. Para melhorar a experiência de utilização em sessões contínuas, a ferramenta guarda os rascunhos de trabalho e as preferências de tema (como o modo escuro) diretamente no armazenamento local do navegador.
Perguntas Frequentes
Quais dialetos SQL a ferramenta consegue formatar?
Standard SQL, PostgreSQL, MySQL, MariaDB, SQL Server (T-SQL), Oracle (PL/SQL), SQLite, BigQuery, Snowflake e Spark SQL. Escolha o dialeto correspondente à sua base de dados para que as palavras-chave e as aspas sejam tratadas conforme esperado pelo respetivo 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 da base de dados, pelo que 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 — o seu código SQL nunca sai da página.