Formatador SQL
Enter SQL on the left to start formatting
Ferramenta de formatação SQL GeekFormat, embeleza e organiza rapidamente consultas SQL desordenadas. Suporta 20 dialetos de banco de dados como MySQL, PostgreSQL, SQLite, SQL Server, Oracle etc., personaliza opções de formatação como caixa de palavras-chave, estilo de indentação, posição de quebra de linha de operadores, largura de expressão e oferece 4 estilos predefinidos com um clique. Inclui funções de compactação SQL e validação de sintaxe, suporta upload/download de arquivos, compartilhamento por URL, atalhos de teclado, e fornece destaque de sintaxe e layout de painel ajustável baseado no editor CodeMirror 6. Formata automaticamente em tempo real após a entrada, processamento totalmente local no navegador, as instruções SQL não são enviadas para o servidor.
Sugestões Relacionadas
Sobre Formatação SQL
A formatação SQL (SQL Formatting / SQL Beautification) refere-se ao ajuste de caracteres em branco (quebras de linha, indentação, espaços) e caixa de palavras-chave em instruções SQL por meio de ferramentas automatizadas, para que tenham uma estrutura de diagramação consistente e de alta legibilidade. Como linguagem de consulta declarativa, uma consulta complexa geralmente envolve várias cláusulas como JOIN de várias tabelas, subconsultas aninhadas, várias condições WHERE, agrupamento GROUP BY, filtragem HAVING, ordenação ORDER BY etc., se não for formatada, todo o conteúdo fica espremido em uma linha ou com indentação confusa, o que afeta seriamente a legibilidade e a eficiência de manutenção. O SQL formatado deixa cada cláusula em linha independente por meio de quebras de linha e indentação razoáveis, a hierarquia de aninhamento é expressa por indentação, permitindo que o leitor entenda rapidamente a estrutura da consulta.
Por que a formatação SQL é importante? Em ambientes de colaboração em equipe, diferentes desenvolvedores têm diferentes preferências de estilo de codificação — alguns gostam de palavras-chave maiúsculas, outros minúsculas; alguns usam indentação de 2 espaços, outros 4 espaços ou Tab; alguns colocam AND no início da linha, outros no final. Essas diferenças de estilo em si não afetam a execução SQL, mas geram muitos diffs sem sentido durante a revisão de código (Code Review), o revisor precisa distinguir quais são alterações lógicas reais e quais são apenas ajustes de formatação. Regras unificadas de formatação SQL e ferramentas de formatação automatizadas podem eliminar discussões sobre estilo, permitindo que a equipe se concentre na lógica de negócio em si.
As regras centrais da formatação SQL geralmente incluem os seguintes aspectos: primeiro, caixa de palavras-chave — palavras reservadas SQL como SELECT, FROM, WHERE, JOIN, ON, GROUP BY, ORDER BY, HAVING, LIMIT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP geralmente são maiúsculas para diferenciar de identificadores (ou minúsculas unificadas de acordo com as regras da equipe); segundo, quebra de linha de cláusula — cada cláusula principal (SELECT/FROM/WHERE/GROUP BY/ORDER BY etc.) fica em linha independente; terceiro, alinhamento de nomes de coluna — vários nomes de coluna na lista SELECT ocupam uma linha cada e são alinhados verticalmente; quarto, níveis de indentação — subconsultas, condições JOIN, expressões CASE aninhadas etc. refletem hierarquia por indentação adicional; quinto, posição de operadores — operadores lógicos como AND/OR são colocados uniformemente no início ou no final da linha.
A formatação SQL de diferentes dialetos de banco de dados tem suas particularidades. MySQL usa acento grave (`) para citar identificadores, PostgreSQL usa aspas duplas ("), SQL Server usa colchetes ([]); MySQL usa LIMIT para paginação, PostgreSQL suporta LIMIT/OFFSET, SQL Server usa TOP ou OFFSET/FETCH, Oracle usa ROWNUM; PostgreSQL tem operador de conversão de tipo ::, MySQL tem escape de acento grave, SQL Server tem identificadores entre colchetes. Essas diferenças de dialeto exigem que o formatador consiga reconhecer elementos sintáticos específicos de bancos de dados específicos, caso contrário pode julgar incorretamente sintaxes especiais como erros ou dividir palavras-chave erroneamente. Esta ferramenta é implementada com base na biblioteca sql-formatter e fornece suporte sintático especializado para 20 dialetos SQL principais.
A compactação SQL (SQL Minification) é a operação inversa da formatação e é muito útil em certos cenários. SQL impresso em logs de aplicativos, SQL gerado por frameworks ORM (como Hibernate, MyBatis, Django ORM, SQLAlchemy), SQL capturado por ferramentas de monitoramento de desempenho de banco de dados, geralmente estão em formato compactado de linha única sem quebras de linha, o que é muito hostil para solução de problemas — é necessário formatar primeiro para ler. Por outro lado, quando é necessário incorporar SQL em strings de código (como concatenação de strings em Java/Python/JavaScript), gravar em arquivos de configuração, passar por parâmetros de URL ou compartilhar em ferramentas de chat que não suportam texto de várias linhas, compactar em linha única pode evitar problemas de formatação causados por quebras de linha e indentação.
Escolher o estilo de formatação adequado requer considerar as regras da equipe e os cenários de uso. O estilo de palavras-chave maiúsculas é a convenção tradicional do SQL, na era da impressão palavras-chave maiúsculas podiam tornar SQL escrito à mão ou por máquina de escrever mais legível, hoje ainda é usado por muitas equipes e organizações. O estilo de palavras-chave minúsculas é cada vez mais popular em plataformas de código modernas como GitHub, porque minúsculas são visualmente mais suaves, e com o destaque de sintaxe de editores modernos não é mais necessário diferenciar palavras-chave por caixa. Indentação de 2 espaços é mais comum entre desenvolvedores frontend, 4 espaços é mais comum entre desenvolvedores backend Java/C#. Indentação Tab permite que diferentes desenvolvedores personalizem a largura de exibição no editor. Colocar operadores lógicos AND/OR no início da linha facilita a varredura de cada condição ao ler longas listas de condições; colocar no final da linha está mais alinhado com o hábito de leitura em inglês.
O princípio de implementação de ferramentas de formatação SQL é baseado principalmente em análise léxica (Tokenization) e análise sintática. Bibliotecas como sql-formatter primeiro decompõem a string SQL em uma série de tokens (palavras-chave, identificadores, literais, operadores, pontuação, comentários etc.), depois reorganizam esses tokens de acordo com regras sintáticas (diferentes dialetos têm diferentes conjuntos de regras), inserindo quebras de linha e indentação nas posições apropriadas. Diferente de formatadores de código genéricos (como Prettier), formatadores SQL precisam entender a estrutura sintática específica do SQL (como condições JOIN...ON, expressões CASE WHEN...END, aninhamento de parênteses de subconsultas) para indentar corretamente, não apenas com base em chaves ou correspondência de parênteses.
Ao usar ferramentas de formatação SQL, preste atenção aos seguintes pontos: primeiro, a formatação não valida a correção semântica do SQL — SQL sintaticamente correto mas logicamente errado (como condição JOIN escrita errada, condição WHERE omitida) ainda estará errado após a formatação, a formatação apenas melhora a diagramação, não a lógica; segundo, em poucos casos extremos, a ferramenta de formatação pode gerar resultados diferentes do SQL original em cenários sensíveis a espaços em branco (como espaços em constantes de string, posições específicas de comentários), recomenda-se fazer uma verificação simples após a formatação; terceiro, não execute diretamente em ambiente de produção o SQL gerado pela ferramenta de formatação sem testes, especialmente SQL com parâmetros dinâmicos; quarto, para SQL contendo dados sensíveis (senhas, chaves, PII), use ferramentas de formatação locais (como esta ferramenta) em vez de ferramentas online, para evitar risco de vazamento de dados.
Casos de uso
- Organizar grandes blocos de procedimentos armazenados SQL e consultas complexas com junção de tabelas sem formatação ao assumir projetos antigos, para entender rapidamente a lógica de negócio
- Padronizar o estilo SQL antes da revisão de código da equipe, eliminar ruído de diff causado por preferências pessoais de formatação, focar na revisão lógica
- SQL compactado em linha única copiado de logs ou console, formatar para facilitar a leitura e solução de problemas
- Ao escrever documentos técnicos e blogs, incorporar exemplos SQL formatados no documento para aumentar profissionalismo e legibilidade
- Quando o SQL exportado de clientes de banco de dados tem formatação confusa, reformatar para o estilo unificado da equipe antes de enviar o código
- Ao preparar entrevistas ou apresentações técnicas, formatar instruções SQL de demonstração para usar em slides e explicação em quadro branco
- Ao solucionar erros SQL, formatar subconsultas aninhadas desordenadas para localizar problemas estruturais como parênteses não correspondentes e palavras-chave ausentes
- Logs SQL gerados por frameworks ORM geralmente estão em formato compactado sem quebras de linha, formatar para facilitar a análise da consulta realmente executada
- Ao desenvolver scripts de migração de dados, formatar instruções de criação de tabela e INSERT para melhorar a manutenibilidade
- Padronizar a formatação antes de comparar diferenças entre versões SQL, evitar que diferenças puramente de formatação interfiram na revisão de código
- Ao aprender SQL, formatar consultas de exemplo para entender a hierarquia de JOIN, subconsultas e GROUP BY por meio de indentação e quebras de linha claras
- Ao compartilhar trechos SQL com colegas, formatar primeiro e depois compartilhar por link URL, o destinatário abrirá e verá o mesmo resultado formatado
Como Usar
- Selecione o dialeto de banco de dados (padrão MySQL, suporta 20 dialetos SQL) para garantir que o formatador reconheça a sintaxe corretamente
- Cole as instruções SQL que precisam ser formatadas na área de edição à esquerda, ou clique no botão de upload para importar arquivos .sql/.txt, também pode carregar SQL de exemplo no menu de exemplos
- Clique no botão formatar (Shift+Cmd/Ctrl+F) ou aguarde a formatação automática (acionada automaticamente 800ms após a entrada), o resultado formatado é exibido imediatamente à direita
- Se precisar ajustar a formatação, clique no botão de configurações para expandir o painel de configuração, ajuste opções como caixa de palavras-chave, indentação, quebra de linha, ou selecione um estilo predefinido; se precisar de compactação em linha única, clique no botão compactar
- Clique no botão copiar para copiar o resultado, ou clique no botão baixar para salvar como arquivo .sql, também pode clicar no botão compartilhar para gerar um link URL contendo o conteúdo SQL
Recursos
- Compatibilidade com 20 dialetos de banco de dados: suporta reconhecimento de sintaxe e formatação para 20 dialetos SQL incluindo SQL padrão, MySQL, MariaDB, TiDB, PostgreSQL, SQLite, BigQuery, Snowflake, Redshift, DB2, PL/SQL(Oracle), T-SQL(SQL Server), Spark SQL, Hive, Trino, ClickHouse, DuckDB etc.
- Controle de caixa de palavras-chave: suporta três modos para palavras-chave como SELECT/FROM/WHERE/JOIN: maiúsculas (UPPER), minúsculas (lower) ou preservar original (preserve), com configuração separada para tipos de dados e nomes de funções
- Controle de caixa de identificadores: identificadores como nomes de tabelas, colunas e aliases suportam maiúsculas, minúsculas ou preservar original, adaptando-se a diferentes padrões de codificação da equipe
- Estilo de indentação opcional: suporta três estilos de indentação: indentação padrão, alinhamento tabular à esquerda (tabularLeft) e alinhamento tabular à direita (tabularRight), atendendo a diferentes preferências de leitura
- Configuração flexível de indentação: largura de indentação pode ser 2 espaços, 4 espaços ou caractere Tab; número de linhas vazias entre consultas pode ser 0/1/2 linhas
- Quebra de linha de operadores lógicos: configura se operadores lógicos como AND/OR quebram linha antes (before) ou depois (after) do operador, alinhando-se ao estilo de código da equipe
- Controle de largura de expressão: limite de caracteres para quebra de linha de expressão é ajustável (20-200 caracteres), quebra automaticamente quando excede a largura, controlando o comprimento de linha única
- Modo de operadores densos: quando ativado, não deixa espaços extras ao redor de operadores, gerando resultado de formatação mais compacto, adequado para cenários SQL embarcados
- Quebra de linha antes de ponto e vírgula: opcionalmente quebra linha antes do ponto e vírgula de término da instrução, deixando o ponto e vírgula em linha separada para localizar rapidamente os limites da instrução
- 4 estilos predefinidos: alternância com um clique entre padrão (palavras-chave UPPER + indentação de 2 espaços), minúsculas (palavras-chave totalmente minúsculas), compacto (alinhamento tabular + operadores densos) e largo (indentação de 4 espaços + duas linhas vazias), sem necessidade de ajustar item por item
- Função de compactação SQL: compacta SQL em linha única com um clique, remove automaticamente comentários, espaços em branco e quebras de linha extras, adequado para saída de log, concatenação de código e cenários de incorporação em documentos
- Função de validação de sintaxe: validação básica de sintaxe SQL, exibe mensagens de erro quando a formatação falha para ajudar a localizar problemas de sintaxe
- SQL de exemplo integrado: fornece quatro grupos de SQL de exemplo: consulta básica, consulta complexa com junção de tabelas, processamento em lote de várias instruções e instrução de criação de tabela CREATE TABLE, para experimentar rapidamente o efeito da formatação
- Upload/download de arquivos: suporta upload de arquivos .sql/.txt para importar SQL diretamente, após formatação pode baixar como arquivo .sql para salvar
- Compartilhamento por URL: usa compressão LZ-String para codificar SQL no hash da URL, copie o link para compartilhar a configuração de formatação e o conteúdo SQL
- Formatação automática em tempo real: formata automaticamente com debounce de 800ms após inserir SQL, veja o efeito imediatamente ao modificar, sem precisar clicar repetidamente no botão
- Atalhos de teclado: Shift+Cmd/Ctrl+F formatar, Shift+Cmd/Ctrl+C compactar, Shift+Cmd/Ctrl+V validar, Shift+Cmd/Ctrl+O carregar, Shift+Cmd/Ctrl+D baixar, Shift+Cmd/Ctrl+K limpar
- Editor CodeMirror: editor com destaque de sintaxe SQL baseado em CodeMirror 6, suporta ajuste de largura de painel esquerdo/direito arrastando, ajuste de tamanho de fonte e painel de histórico
- Copiar resultado com um clique: SQL formatado ou compactado pode ser copiado para a área de transferência com um clique, para colar diretamente em clientes de banco de dados ou código
- Processamento totalmente local no navegador: toda formatação SQL é concluída em JavaScript no navegador, baseada na biblioteca sql-formatter, as instruções SQL não são enviadas para nenhum servidor, garantindo segurança de dados
Perguntas frequentes
A formatação SQL altera a lógica da consulta? O SQL formatado pode ser executado diretamente?
Não altera a lógica da consulta. A formatação SQL apenas ajusta caracteres em branco (quebras de linha, indentação, espaços) e caixa de palavras-chave, não modifica identificadores, valores, operadores, chamadas de função e estrutura de consulta no SQL. O SQL formatado é semanticamente completamente equivalente ao SQL original, pode ser copiado diretamente para clientes de banco de dados como MySQL Workbench, pgAdmin, DBeaver, Navicat para execução. No entanto, recomenda-se verificar em ambiente de teste antes de executar em ambiente de produção.
Quais dialetos de banco de dados são suportados? O que fazer quando há diferenças na sintaxe SQL entre diferentes bancos de dados?
Suporta 20 dialetos SQL: SQL padrão, MySQL, MariaDB, TiDB, PostgreSQL, SQLite, BigQuery, Snowflake, Redshift, DB2, DB2i, PL/SQL(Oracle), T-SQL(SQL Server), Spark SQL, Hive, Trino, ClickHouse, SingleStoreDB, DuckDB, N1QL(Couchbase). Diferentes bancos de dados têm diferenças em sintaxe de paginação (LIMIT vs LIMIT/OFFSET vs TOP vs ROWNUM), concatenação de strings, funções de data, citação de identificadores (acento grave vs aspas duplas vs colchetes) etc. Selecionar o dialeto correto garante que o formatador reconheça palavras-chave e nomes de função corretamente, evitando formatação incorreta de funções específicas do dialeto.
O que é compactação SQL? Qual a diferença entre compactação e formatação?
A compactação SQL (Minify) é a operação inversa da formatação: remove todos os comentários (incluindo comentários de várias linhas /* */ e comentários de linha única --), mescla caracteres em branco consecutivos em um único espaço, remove espaços extras ao redor de parênteses/vírgulas/ponto e vírgula/operadores, e gera SQL compacto em linha única. A compactação é adequada para os seguintes cenários: incorporar SQL em strings de código, gravar em arquivos de log, passar por parâmetros de URL, compartilhar em janelas de chat para evitar desordem de quebra de linha. A formatação, por outro lado, adiciona quebras de linha e indentação apropriadas para melhorar a legibilidade.
Quando a formatação automática é acionada? Posso desativá-la?
Após inserir ou modificar SQL na área de edição à esquerda, a formatação é acionada automaticamente após um atraso de debounce de 800ms (desde que a formatação anterior não tenha erros de sintaxe). Isso é para mostrar o efeito formatado imediatamente após você parar de digitar. Se preferir controle manual, basta clicar no botão formatar na barra de ferramentas, sem precisar esperar o acionamento automático. Atualmente não há um interruptor separado para desativar a formatação automática, mas ela não é acionada repetidamente enquanto o conteúdo de entrada não for modificado.
O que fazer quando a formatação falha e indica erro de sintaxe?
O formatador reporta erro quando encontra sintaxe SQL que não consegue analisar, as causas comuns incluem: 1) Parênteses não correspondentes — verifique se o número de parênteses esquerdos e direitos é consistente; 2) String não fechada — verifique se aspas simples/duplas aparecem em pares; 3) Erro de digitação em palavras-chave — como erros de digitação como SELCT, WHRER etc.; 4) Dialeto de banco de dados incompatível — como usar sintaxe de conversão de tipo :: específica do PostgreSQL mas selecionar dialeto MySQL; 5) Fragmento SQL incompleto — como apenas condição WHERE sem SELECT FROM. A mensagem de erro exibe a posição e o motivo do problema relatado pelo analisador, você pode localizar o problema com base nisso. Também pode clicar primeiro no botão validar (Shift+Cmd/Ctrl+V) para verificar a sintaxe.
Como escolher entre os três modos: palavras-chave maiúsculas, minúsculas ou preservar original?
Palavras-chave maiúsculas (UPPER) é o estilo de codificação SQL mais tradicional e popular, palavras-chave como SELECT/FROM/WHERE/JOIN em maiúsculas as diferenciam visualmente de nomes de tabela/coluna, permitindo localizar rapidamente a estrutura SQL em grandes quantidades de código. Palavras-chave minúsculas são mais adequadas para ambientes IDE modernos (editores modernos têm destaque de sintaxe, não dependem mais de diferenciação por caixa), visualmente mais uniformes. Preservar original (preserve) não altera a caixa que você digitou, adequado para fazer ajustes de formatação mínimos em código existente. Palavras-chave, identificadores (nomes de tabela e coluna), tipos de dados (VARCHAR/INT/BIGINT) e nomes de função (COUNT/SUM/COALESCE) podem ter estratégias de caixa definidas independentemente.
Qual a diferença entre o modo de alinhamento Tabular e a indentação padrão?
A indentação padrão (standard) usa o método tradicional de indentação hierárquica, cada cláusula é indentada com um número fixo de espaços. Os modos de alinhamento tabular à esquerda/direita alinham nomes de coluna na lista SELECT, expressões em condições WHERE etc. por colunas, formando um efeito visual semelhante a uma tabela. Por exemplo, vários nomes de coluna após SELECT são alinhados verticalmente, aliases AS também são alinhados na mesma posição de coluna. Esse modo é muito intuitivo ao ler consultas com várias colunas em monitores de tela larga, mas pode causar linhas muito longas em telas estreitas.
Como alternar rapidamente entre o estilo SQL unificado da equipe e preferências pessoais?
Use os botões predefinidos no painel de configurações: padrão (palavras-chave UPPER + indentação padrão de 2 espaços), minúsculas (palavras-chave totalmente minúsculas), compacto (alinhamento tabularLeft + operadores densos), largo (indentação de 4 espaços + duas linhas vazias entre consultas). Se sua equipe tiver regras específicas, ajuste manualmente as opções e formate. Atualmente não há suporte para salvar predefinições personalizadas, mas o número de opções de configuração é limitado, o ajuste rápido também é conveniente.
O SQL formatado perde comentários?
A operação de formatação (Format) preserva comentários, comentários de linha única -- e comentários de várias linhas /* */ são preservados perto da posição original (a posição específica depende da lógica de processamento de comentários da biblioteca sql-formatter). Mas a operação de compactação (Compress) remove todos os comentários para gerar o SQL de linha única mais compacto, se precisar preservar comentários antes da compactação, copie primeiro o resultado formatado.
Quais atalhos de teclado são suportados? Qual a diferença entre Mac e Windows/Linux?
Suporta os seguintes atalhos (Mac usa tecla Cmd, Windows/Linux usa tecla Ctrl, ambos exigem segurar Shift simultaneamente): Shift+Cmd/Ctrl+F formatar; Shift+Cmd/Ctrl+C compactar; Shift+Cmd/Ctrl+V validação de sintaxe; Shift+Cmd/Ctrl+O carregar arquivo; Shift+Cmd/Ctrl+D baixar arquivo; Shift+Cmd/Ctrl+K limpar conteúdo. Clique no ícone de interrogação na barra de ferramentas para ver a lista de atalhos a qualquer momento.
Existe limite de tamanho para upload de arquivos SQL? Quais formatos de arquivo são suportados?
Suporta upload de arquivos de texto nos formatos .sql e .txt, teoricamente não há limite rígido de tamanho de arquivo, mas o navegador pode ter problemas de desempenho ao processar arquivos muito grandes (como arquivos de dump SQL com mais de 1MB). Recomenda-se processar consultas individuais ou arquivos de script de pequena escala. Para arquivos SQL muito grandes (como dump completo de banco de dados), recomenda-se dividir em fragmentos menores antes de formatar. O conteúdo do arquivo é lido pela API FileReader do navegador, não é enviado para o servidor.
A função de compartilhamento por URL é segura? O conteúdo SQL é visto pelo servidor?
A função de compartilhamento por URL usa compressão LZ-String para codificar o conteúdo SQL na parte hash da URL (conteúdo após #). A característica da parte hash da URL é: ela não é enviada ao servidor com solicitações HTTP, é processada apenas localmente no navegador. Quando você copia um link de compartilhamento para outra pessoa, o navegador do destinatário analisa o hash e descompacta para exibir o conteúdo SQL, durante todo o processo o SQL não passa por nenhum servidor. No entanto, observe que o link de compartilhamento contém o conteúdo SQL completo, se o SQL contiver informações sensíveis (como senhas, chaves, dados pessoais), não compartilhe o link em canais públicos.
Posso formatar scripts contendo várias instruções SQL?
Sim. A ferramenta suporta formatação em lote de várias instruções SQL (como várias instruções SELECT/INSERT/UPDATE/CREATE TABLE separadas por ponto e vírgula). Você pode controlar o intervalo entre instruções (0/1/2 linhas) através da opção "Linhas entre consultas" no painel de configurações. Carregue o SQL de exemplo "Várias instruções" para experimentar o efeito da formatação de várias instruções. Cada instrução é indentada e diagramada independentemente, as instruções são separadas pelo número de linhas vazias configurado.
Qual tamanho de instrução SQL causa travamento?
Implementação puramente em JavaScript baseada na biblioteca sql-formatter, processar SQL com até algumas centenas de linhas geralmente tem resposta em milissegundos em navegadores modernos, sem sensação de travamento. Mesmo procedimentos armazenados de milhares de linhas ou consultas complexas podem ser concluídos em menos de 1 segundo. Todos os cálculos são concluídos na thread principal do navegador, arquivos muito grandes (como dumps SQL com mais de 10.000 linhas) podem causar congelamento temporário da interface, recomenda-se processar em lotes.
A ferramenta precisa de conexão com a internet para usar? Os dados SQL são seguros?
Pode ser usada offline após o carregamento da página, formatação, compactação e validação SQL são todas concluídas em JavaScript local no navegador, não envia as instruções SQL que você digitou para nenhum servidor externo. Não usa rastreamento por Cookie, não coleta o conteúdo SQL digitado pelo usuário ou dados de comportamento de uso. Implementada com base na madura biblioteca open-source sql-formatter, a lógica do código é transparente e auditável.
Solução de Problemas
O que fazer quando a formatação reporta erro "Parse error" ou "Falha na formatação SQL"?
O formatador analisa SQL com base na biblioteca sql-formatter, reporta erro quando encontra sintaxe não reconhecida. Causas comuns e soluções: 1) Parênteses não correspondentes — verifique se o número de parênteses esquerdos e direitos é consistente, você pode usar a função de destaque de correspondência de parênteses do editor para auxiliar na verificação; 2) Aspas de string não fechadas — verifique se aspas simples e duplas aparecem em pares, aspas dentro de strings precisam ser escapadas (como '' ou \'); 3) Seleção incorreta de dialeto de banco de dados — como usar operador :: do PostgreSQL mas selecionar dialeto MySQL, mude para o dialeto correto; 4) Instrução SQL incompleta — como apenas cláusula WHERE sem SELECT FROM; 5) Uso de sintaxe muito específica de banco de dados (como certos fluxos de controle de procedimentos armazenados), tente mudar para o dialeto mais próximo ou simplifique o fragmento SQL antes de formatar.
Caracteres chineses ou especiais aparecem como caracteres ilegíveis após a formatação?
Esta ferramenta suporta totalmente codificação UTF-8, caracteres chineses e Unicode permanecem inalterados durante a formatação. Se aparecer caracteres ilegíveis, geralmente é porque o SQL que você colou vem de um arquivo com codificação incorreta (como copiado de arquivo com codificação GBK). Certifique-se de que o arquivo de origem está salvo com codificação UTF-8, ou converta o arquivo para codificação UTF-8 antes de colar. O editor CodeMirror no navegador usa UTF-8 por padrão, não introduz conversão de codificação.
Após carregar arquivo SQL não há reação ou aparece vazio?
O upload de arquivos suporta apenas arquivos de texto com extensão .sql e .txt. Se o arquivo estiver em formato binário (como arquivo de banco de dados .sqlite, documento .doc), aparecerá caracteres ilegíveis ou vazio após o upload. Além disso, alguns navegadores têm restrições de segurança para leitura de arquivos locais por JavaScript, certifique-se de que você seleciona o arquivo clicando ativamente no botão de upload, não por arrastar e soltar (arrastar e soltar upload não é suportado atualmente). Tamanho de arquivo recomendado não superior a 1MB, exceder pode causar lentidão na análise do navegador.
Após a formatação algumas palavras-chave ficaram minúsculas/maiúsculas, inconsistentes com a entrada original?
Este é o comportamento normal da formatação. A opção de caixa de palavras-chave (keywordCase) é definida como UPPER por padrão, converterá palavras-chave SQL para maiúsculas uniformemente. Se desejar preservar a caixa original inalterada, altere as opções de caixa de palavras-chave, identificadores, tipos de dados e funções no painel de configurações para "Preservar original (preserve)", assim o formatador apenas ajustará quebras de linha e indentação, não alterará a caixa de nenhuma letra.
Glossário
- Dialeto SQL (SQL Dialect)
- Extensões e variantes do SQL padrão por diferentes sistemas de gerenciamento de banco de dados (DBMS). Por exemplo, LIMIT do MySQL, conversão de tipo :: do PostgreSQL, TOP do SQL Server, ROWNUM do Oracle etc. são sintaxes específicas de dialeto. É necessário selecionar o dialeto correto durante a formatação para garantir a análise sintática correta.
- Caixa de Palavras-chave (Keyword Case)
- Estratégia de caixa para palavras reservadas SQL (SELECT/FROM/WHERE/JOIN etc.). Maiúsculas (UPPER) é o estilo tradicional, minúsculas (lower) é cada vez mais popular no desenvolvimento moderno, preservar original (preserve) é usado para alterações mínimas.
- Identificador (Identifier)
- Nomes de objetos de banco de dados no SQL, incluindo nomes de banco de dados, tabelas, colunas, aliases, índices, views, procedimentos armazenados etc. Diferentes bancos de dados citam identificadores de maneiras diferentes: MySQL usa acento grave, PostgreSQL usa aspas duplas, SQL Server usa colchetes.
- Estilo de Indentação (Indent Style)
- Controla o modo de alinhamento de indentação durante a formatação SQL. A indentação padrão usa progressão hierárquica; tabularLeft/tabularRight alinham nomes de coluna e aliases em formato de tabela, melhor legibilidade em tela larga mas pode gerar linhas mais longas.
- Quebra de Linha de Operadores Lógicos (Logical Operator Newline)
- Posição de quebra de linha de operadores lógicos como AND/OR em condições de várias linhas. before significa que o operador está no início da próxima linha, after significa que o operador está no final da linha atual. Diferentes equipes têm diferentes preferências.
- Largura de Expressão (Expression Width)
- Limite de caracteres por linha que aciona quebra de linha (20-200 caracteres). Expressões que excedem essa largura serão quebradas, semelhante à configuração printWidth/ruler em editores de código.
- Operadores Densos (Dense Operators)
- Uma das opções de formatação, quando ativada, não deixa espaços extras ao redor de operadores (=, <, >, +, - etc.), como `WHERE id=1 AND status='active'` em vez de `WHERE id = 1 AND status = 'active'`, gerando saída mais compacta.
- Linhas Entre Consultas (Lines Between Queries)
- Número de linhas vazias entre várias instruções SQL. 0 significa disposição imediata, 1 significa separação por uma linha vazia (comum), 2 significa duas linhas vazias (estilo largo), afeta a legibilidade de scripts com várias instruções.
- Compactar/Minificar SQL (SQL Minify/Compress)
- Remove todos os comentários e espaços em branco extras do SQL formatado, mesclando em formato compacto de linha única. Adequado para cenários como saída de log, incorporação de código, passagem por URL etc., é a operação inversa da formatação.
- Impressão Bonita (Pretty Print)
- Gera saída de código ou dados em formato de alta legibilidade por indentação e quebras de linha automáticas. SQL Pretty Print é o embelezamento e formatação SQL, oposto ao Minify (compactação).
- CodeMirror
- Componente de editor de código no navegador usado por esta ferramenta (versão 6), fornece funções de aprimoramento de edição como destaque de sintaxe SQL, exibição de números de linha, dobradura de código etc., é uma solução de editor de código Web amplamente usada na indústria.
- sql-formatter
- Biblioteca open-source de formatação SQL usada no núcleo desta ferramenta, suporta análise léxica e saída formatada para vários dialetos SQL, é uma das bibliotecas de formatação SQL mais populares no ecossistema frontend.
Lista de dialetos SQL suportados
A ferramenta suporta 20 dialetos de banco de dados SQL, selecione o dialeto correspondente ao banco de dados que você usa para obter o melhor efeito de formatação:
| Dialeto | Banco de Dados | Descrição de Características |
|---|---|---|
| Standard SQL | SQL padrão | Sintaxe padrão ANSI SQL, adequada para cenários gerais e dialetos desconhecidos |
| MySQL | MySQL / TiDB | Banco de dados relacional open-source mais popular, identificadores com acento grave, paginação LIMIT |
| MariaDB | MariaDB | Ramificação do MySQL, compatível com sintaxe MySQL e estendida com mais funções |
| PostgreSQL | PostgreSQL | Banco de dados open-source rico em recursos, identificadores com aspas duplas, conversão de tipo :: |
| SQLite | SQLite | Banco de dados leve embarcado, comum em aplicativos móveis e navegadores |
| T-SQL | SQL Server / Azure | Transact-SQL do Microsoft SQL Server, identificadores com colchetes, paginação TOP |
| PL/SQL | Oracle | Extensão SQL procedural da Oracle, paginação ROWNUM, pacotes internos ricos |
| BigQuery | Google BigQuery | Data warehouse em nuvem do Google, suporta tipos aninhados como STRUCT/ARRAY |
| Snowflake | Snowflake | Data warehouse nativo em nuvem, forte capacidade de processamento de dados semiestruturados |
| Redshift | AWS Redshift | Data warehouse em nuvem da Amazon, baseado em PostgreSQL mas com sintaxe específica |
Comparação de estilos de formatação predefinidos
4 estilos predefinidos com um clique são adequados para diferentes cenários de uso:
| Predefinição | Palavras-chave | Indentação | Operadores | Intervalo entre Consultas |
|---|---|---|---|---|
| Padrão | UPPER | 2 espaços Padrão | Espaçamento normal | 1 linha vazia |
| Minúsculas | lower | 2 espaços Padrão | Espaçamento normal | 1 linha vazia |
| Compacto | UPPER | Tabular esquerda | Modo compacto | 1 linha vazia |
| Largo | UPPER | 4 espaços Padrão | Espaçamento normal | 2 linhas vazias |
Visão geral de atalhos
Todos os atalhos exigem segurar simultaneamente tecla modificadora+Shift+letra correspondente:
| Ação | Mac | Windows/Linux | Descrição |
|---|---|---|---|
| Formatar | ⇧⌘F | Shift+Ctrl+F | Embeleza instruções SQL, adiciona quebras de linha e indentação |
| Compactar | ⇧⌘C | Shift+Ctrl+C | Compacta SQL em linha única, remove comentários e espaços em branco |
| Validar | ⇧⌘V | Shift+Ctrl+V | Verifica se a sintaxe SQL está correta |
| Carregar | ⇧⌘O | Shift+Ctrl+O | Carrega .sql/.txt de arquivo local |
| Baixar | ⇧⌘D | Shift+Ctrl+D | Salva o resultado como arquivo .sql |
| Limpar | ⇧⌘K | Shift+Ctrl+K | Limpa conteúdo de entrada e saída |
Privacy & Security
Todas as operações desta ferramenta de formatação SQL são concluídas totalmente localmente no seu navegador: as instruções SQL que você digita, o dialeto selecionado e a configuração de formatação são todos processados no JavaScript do navegador pela biblioteca sql-formatter, nenhum conteúdo SQL ou configuração é enviado pela rede para servidores externos. O upload de arquivos lê o conteúdo de arquivos locais pela API HTML5 FileReader, sem transmissão pela rede. A função de compartilhamento por URL compacta o SQL e o codifica na parte hash da URL (conteúdo após # não é enviado ao servidor com solicitações HTTP), apenas descompacta e exibe localmente no navegador. Não usa rastreamento por Cookie, não coleta o conteúdo SQL digitado pelo usuário ou dados de comportamento de uso. Após fechar ou atualizar a página, o conteúdo de entrada e o estado da configuração são redefinidos automaticamente (o histórico é salvo apenas no localStorage local).
Authoritative References
- GitHubDocumentação oficial do sql-formatter
- codemirror.netSite oficial do CodeMirror 6
- WikipediaWikipedia - Sintaxe SQL
- Simulador de Daltonismo
- Conversor de cores
- Conversor de .htaccess para Nginx
- Conversor de SQL
- Parser de Cookies
- Gerador de Expressões Cron
- Validador de Expressões Cron
- Formatador de CSS
- Compressor de CSS
- CSV para Excel
- Conversor de Moedas
- Comparador de Diferenças
- Gerador de Favicon
- Formatador de XML
- Conversor Hexadecimal
- Formatador de HTML
- Compressor de HTML
- HTML para Markdown
- Markdown para HTML
- Formatar JavaScript
- Compressor de JS
- Formatador JSX
- Compressor de JSX
- Agrupamento de palavras-chave
- Gerador Lorem Ipsum
- Gerador de Tabela Markdown
- Gerador de Meta Tags
- Gerador de Senhas
- Verificador de Força de Senha
- Gerador de código QR/código de barras
- Testador de Expressões Regulares
- Gerador de Slug
- Gerador de SQL
- Formatador SQL
- Contador de Palavras
- Ferramenta de Tempo
- Formatador de TS
- Compressor de TS
- Formatador de TSX
- Compressão TSX
- Conversor Unix Timestamp
- Gerador UUID
- Formatador de YAML
- Conversor de caixa