Formatador SQL

Formata texto SQL para melhor legibilidade.

Antes

Depois

O que é um formatador de SQL?

Uma instrução SQL longa apertada numa única linha não revela nada da sua estrutura. Esta ferramenta insere quebras de linha em torno de palavras-chave como SELECT, FROM, WHERE e JOIN, e indenta as subconsultas aninhadas, de modo que a forma da instrução possa ser acompanhada com o olhar. A formatação nunca altera o significado.

O dialeto que você escolher influencia o resultado. MySQL, PostgreSQL, Oracle e SQL Server têm cada um a sua própria sintaxe, então escolha o que corresponde ao seu banco de dados. Note também que um SQL com erro de sintaxe não pode ser analisado corretamente e pode voltar sem formatação — nesse caso, verifique primeiro a validade do próprio SQL.

Passos para formatar SQL

  1. Cole o seu SQL Cole no campo o SQL que quer formatar. Separando as instruções com ponto e vírgula, você pode processar várias de uma vez.
  2. Escolha o dialeto Selecione o que corresponde ao banco de dados em uso. Se não souber, o SQL padrão formata ainda assim a grande maioria das sintaxes.
  3. Ajuste a indentação e as maiúsculas Adapte a largura da indentação à convenção da sua equipe. Ao ativar as maiúsculas, as palavras-chave se alinham e a instrução fica mais legível.
  4. Formate e confira o resultado Pressione «Formatar» e o resultado aparece, pronto para ser colado direto numa revisão de código ou numa especificação.

Dicas para aproveitar melhor

  • Palavras-chave SQL como SELECT, FROM, WHERE e JOIN são automaticamente quebradas e alinhadas, e subconsultas aninhadas são recuadas corretamente.
  • Ativar "Capitalizar palavras-chave" converte automaticamente as palavras-chave para maiúsculas, melhorando a legibilidade.
  • Ajuste o tamanho do recuo para seguir as diretrizes de estilo de código da sua equipe.
  • Colar o SQL formatado em revisões de código ou documentação facilita muito a leitura.
  • Suporta os principais dialetos SQL, incluindo MySQL, PostgreSQL e Oracle.

Quando um formatador de SQL é útil

Decifrar um SQL que lhe foi passado

Formate uma instrução de uma única linha extraída de um log ou do código de uma aplicação e a estrutura das condições de junção e de filtro fica clara num relance.

Organizar antes de uma revisão de código

Entregando-o com a indentação já alinhada, quem revisa pode se concentrar na lógica em vez da apresentação. O diff também fica mais fácil de ler.

Incluir SQL numa especificação

Cole SQL formatado num documento e quem lê poderá acompanhar a estrutura. Junto com as maiúsculas, fica bom de ler mesmo impresso.

Analisar a forma de uma consulta lenta

Como você vê a profundidade das subconsultas e o número de junções, pode formular uma hipótese antes mesmo de ler o plano de execução.

Termos de SQL explicados

Dialeto SQL
As diferenças de sintaxe entre produtos de banco de dados. Cada produto acrescenta as suas próprias extensões ao SQL padrão — daí a importância da escolha ao formatar.
Subconsulta
Uma consulta escrita aninhada dentro de outra instrução SQL. Quanto mais fundo vai, mais difícil fica de ler, e é justamente aí que a indentação rende mais.
JOIN
A sintaxe que obtém dados ligando várias tabelas. As condições de junção tendem a ficar longas, então o lugar das quebras de linha governa a legibilidade.
Instrução preparada
Uma abordagem que monta a consulta inserindo os valores depois. É o alicerce de qualquer defesa contra injeção de SQL.
Injeção de SQL
Um ataque que mistura fragmentos de SQL nos valores informados para fazer executar uma consulta não pretendida. Montar SQL por concatenação de cadeias favorece isso.
Procedimento armazenado
Uma sequência de processamentos guardada do lado do banco de dados. Por conter sintaxe de controle, pode ficar fora do que a formatação abrange.

Perguntas frequentes

Além do SQL padrão, são suportados MySQL, PostgreSQL, Oracle (PL/SQL) e SQL Server (T-SQL). Selecione o dialeto correspondente ao seu banco de dados no menu para formatar corretamente a sintaxe específica dele.

Se o SQL de entrada contiver erros de sintaxe, o formatador pode não conseguir analisá-lo corretamente. Verifique se o seu SQL é válido em um cliente de banco de dados antes de formatar.

Você pode colar várias instruções SQL separadas por ponto e vírgula e elas serão formatadas juntas. No entanto, stored procedures e a sintaxe de blocos PL/SQL podem não ser totalmente suportados.
Tool-kun

Curiosidade — 50 anos de SQL: história dos bancos de dados relacionais

O SQL surgiu quando a IBM desenvolveu o "SEQUEL" com base no modelo relacional proposto por E.F. Codd (IBM) em um artigo de 1970 (renomeado para SQL por questões de marca registrada). Foi padronizado pela ANSI em 1986 e tem sido usado em incontáveis bancos de dados desde então.

Um dos incidentes de segurança mais famosos é o ataque de injeção SQL. A violação do Sony PSN (PlayStation Network) em 2011 expôs mais de 100 milhões de registros pessoais, com danos estimados em US$ 171 milhões. Continua sendo presença constante no OWASP Top 10, e o uso de prepared statements é a contramedida fundamental.

"WHERE 1=1" é uma técnica prática para construir SQL dinâmico, mas também é um exemplo clássico de injeção SQL. A possibilidade de fazer login sem senha inserindo ' OR '1'='1 em um formulário de login ainda é usado como exemplo canônico em treinamentos de segurança.