Formatador de SQL
Formata consultas SQL para PostgreSQL, MySQL, SQL Server, Oracle, BigQuery, Snowflake e outros, com opções de maiúsculas e indentação, no navegador.
Como formatar uma consulta SQL
- Cola uma ou mais consultas, ou clica em Abrir um ficheiro para carregar um ficheiro
.sql(até 10 MB). - Escolhe o Dialeto da tua base de dados, por exemplo PostgreSQL, MySQL ou SQL Server (T-SQL).
- Escolhe como escrever as Palavras-chave (MAIÚSCULAS, minúsculas ou Manter como escrito) e a Indentação.
- Marca Sem espaços à volta dos operadores se preferires
a=b+1aa = b + 1. - Clica em Formatar SQL e depois copia ou transfere o resultado. Mudar uma opção volta a formatar a consulta.
A consulta é apenas reformatada como texto. Nunca é executada nem enviada para uma base de dados ou um servidor.
O que faz o formatador
A ferramenta usa a biblioteca de código aberto sql-formatter. Divide cada instrução em cláusulas e põe cada palavra-chave de cláusula (SELECT, FROM, WHERE, GROUP BY, ORDER BY…) numa linha própria, com o conteúdo da cláusula indentado por baixo. As colunas de uma lista SELECT ficam uma por linha, as condições AND e OR começam em linhas novas, e as subconsultas e expressões CASE são indentadas segundo o nível de aninhamento. As expressões curtas entre parênteses ficam numa só linha. Várias instruções separadas por ponto e vírgula ficam separadas por uma linha em branco.
Só mudam os espaços em branco e as maiúsculas/minúsculas. Os literais de texto, os identificadores entre aspas e os comentários são mantidos exatamente como estão, por isso a consulta formatada devolve o mesmo resultado que a original.
Porque é que o dialeto importa
As bases de dados SQL partilham o núcleo da linguagem, mas diferem nos pormenores, e um formatador tem de os conhecer para ler a consulta corretamente:
- os identificadores são delimitados com
"aspas duplas"no SQL padrão e no PostgreSQL, com`acentos graves`no MySQL, no MariaDB e no BigQuery, e com[parênteses retos]no SQL Server; - operadores como o
->>e as conversões::do PostgreSQL, ou o acesso por caminho:do Snowflake, só existem em alguns dialetos; - os marcadores de parâmetros variam:
?,$1,:nameou@name; - cada dialeto tem as suas próprias palavras reservadas e funções, que a opção Palavras-chave altera.
Se aparecer «Não foi possível analisar a consulta», confirma primeiro que o dialeto escolhido corresponde à tua base de dados. O erro mostra a linha e a coluna onde a análise parou. SQL padrão é a escolha mais restritiva; escolhe a tua base de dados real sempre que possível.
Maiúsculas nas palavras-chave e dicas de estilo
As palavras-chave em maiúsculas continuam a ser a convenção mais comum, porque distinguem de relance a linguagem dos nomes de tabelas e colunas. As minúsculas são populares em equipas que as acham mais fáceis de ler, e Manter como escrito deixa a tua escolha intacta. Os nomes de tabelas, colunas e funções nunca são alterados: só as palavras reservadas seguem a opção. Em ficheiros longos, uma formatação consistente também torna muito mais fácil rever as diferenças entre versões.
Perguntas frequentes
Que dialetos são suportados?
SQL padrão, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle (PL/SQL), Google BigQuery, Snowflake, Amazon Redshift, IBM Db2, Db2 for i, Apache Hive, Spark SQL, Trino/Presto, DuckDB, ClickHouse, SingleStoreDB, TiDB e Couchbase N1QL.
A ferramenta verifica se a minha consulta é válida?
Não. Verifica se a consulta pode ser lida no dialeto escolhido, mas não se as tabelas ou colunas existem nem se a consulta correria. Só a tua base de dados o pode confirmar.
Consegue formatar procedimentos armazenados?
Em parte. As instruções dentro dos procedimentos são formatadas, mas os blocos procedimentais (BEGIN … END, ciclos, DECLARE) são dispostos de forma mais simples do que num IDE dedicado.
A minha consulta é enviada para um servidor?
Não. A formatação corre no teu navegador, por isso as consultas com nomes de tabelas ou dados ficam no teu computador.
Porque é que o meu comentário mudou de sítio?
Os comentários são mantidos, mas um comentário no fim de uma linha pode mover-se com o elemento que o precede quando esse elemento passa para uma linha nova.
Ferramentas relacionadas
- Formatador e validador de JSON Formatador e validador de JSON gratuito que formata, minifica e verifica JSON no teu navegador, com os erros de sintaxe indicados por linha e coluna.
- Formatador e minificador de JavaScript Formata JavaScript minificado, minifica-o com o Terser ou verifica a sintaxe com a linha e a coluna exatas de cada erro. Corre só no teu navegador.
- Formatador de XML Formata, minifica e valida XML no navegador. Os erros são indicados com a linha e a coluna. Os teus ficheiros nunca são enviados para um servidor.