- Ele roda no servidor?
- Não. Tudo acontece no seu navegador. O SQL que você cola nunca trafega pela rede, não é registrado e não é guardado. Útil quando você está formatando uma consulta com dados reais, nomes de tabelas internas ou credenciais num comentário.
- Quais dialetos são suportados?
- SQL padrão, PostgreSQL, MySQL, SQLite e SQL Server. O formatador reconhece o estilo de aspas de identificadores de cada dialeto — aspas duplas no padrão/Postgres, crases no MySQL, colchetes no SQL Server — e os mantém como estão. As palavras-chave são o conjunto comum de todos, então palavras específicas como ILIKE (Postgres) ou AUTO_INCREMENT (MySQL) são formatadas corretamente.
- Ele muda valores dentro de strings?
- Não. Tudo que está entre aspas simples passa sem mudança — caixa, espaços, tudo. Se você escrever WHERE name = 'select FROM where', o texto fica exatamente como escrito, mesmo parecendo palavras-chave. O mesmo vale para comentários: blocos -- e /* */ são preservados como estão, numa linha própria.
- Como funciona a opção de caixa das palavras-chave?
- MAIÚSCULAS deixa toda palavra-chave reconhecida em maiúsculas (SELECT, FROM, INNER JOIN). Minúsculas faz o contrário. Título coloca a primeira letra de cada palavra em maiúscula (Select, From, Inner Join). Identificadores — nomes de tabelas, colunas, aliases — nunca têm a caixa alterada. Só mexemos em palavras que sabemos que são palavras-chave.
- Qual a diferença entre espaços e tabulações?
- Espaços: cada nível de recuo tem N espaços (você escolhe N, o padrão é 2). Tabulações: cada nível de recuo é um caractere de tabulação. Tabulações deixam o resultado menor, mas aparecem com a largura configurada no seu editor — prático se você cola numa ferramenta de revisão de código que respeita essa configuração. O seletor de largura fica desativado quando você escolhe tabulações.
- Ele valida o SQL?
- Não — é um formatador, não um analisador. Se você colar SQL quebrado (parêntese faltando, vírgula sobrando, erro de digitação numa palavra-chave), ele formata mesmo assim — só não vai rodar quando você colar de volta no banco. Não tentamos ser um linter; isso é outro trabalho.
- Como ele lida com subconsultas?
- Subconsultas — qualquer coisa entre parênteses que não seja chamada de função — ganham um bloco próprio com recuo. O parêntese de abertura fica na linha de fora, o de fechamento vai para uma linha própria alinhado com o nível de fora, e as cláusulas internas ganham recuo. Parênteses de função como count(*) ou coalesce(a, b) ficam compactos na mesma linha — sem quebra dentro dos argumentos.
- Por que minha consulta formatada fica diferente da de outro formatador?
- Todo formatador faz escolhas de gosto: vírgulas no início ou no fim, onde quebrar AND/OR, quanto recuar o JOIN ON, quando quebrar tuplas de VALUES. Este usa vírgulas no fim, coloca cada cláusula e cada JOIN/ON/AND/OR numa linha própria e mantém cada linha de VALUES numa linha só. Algumas equipes preferem outro formato — não existe um padrão de formatação de SQL.
- Posso formatar um arquivo .sql inteiro com várias consultas?
- Sim — cole tudo. O ponto e vírgula separa as instruções em linhas diferentes e o formatador zera o recuo em cada uma. O arquivo continua num bloco só; se você quer as consultas separadas, colar uma de cada vez é hoje o caminho mais limpo.
- Ele lida com crases do MySQL e colchetes do SQL Server?
- Sim. Identificadores entre crases como `my-col` e entre colchetes como [my col] são reconhecidos e passam sem mudança — o formatador não tenta trocar as aspas nem separá-los. O mesmo vale para identificadores padrão entre aspas duplas, como "My Column".