Formatar SQL

Formatar SQL online — SQL Server, MySQL, PostgreSQL e Oracle

Cole uma consulta para identá-la — uma cláusula por linha, colunas e condições alinhadas, subconsultas e CASE aninhados — ou para deixá-la em uma linha só. Textos, nomes entre colchetes ou aspas e comentários nunca são alterados, e o seu SQL não sai do navegador. O dialeto já começa em SQL Server.

Palavras-chave
Saída
Recuo
  • SQL formatado

    -- clientes que mais compraram em 2026 SELECT c.id, c.nome, COUNT(p.id) AS pedidos, SUM(p.valor_total) AS gasto, CASE WHEN SUM(p.valor_total) > 5000 THEN 'ouro' ELSE 'padrão' END AS faixa FROM clientes c WITH (nolock) LEFT JOIN pedidos p ON p.cliente_id = c.id AND p.status <> 'cancelado' WHERE p.data_pedido >= '2026-01-01' AND c.uf IN ('SP', 'RJ', 'MG') GROUP BY c.id, c.nome HAVING COUNT(p.id) > 2 ORDER BY gasto DESC;

Comandos1
Linhas24
Comentários1
Tamanho antes (bytes)422
Tamanho depois (bytes)462

Textos, nomes entre aspas ou colchetes, números e comentários são copiados exatamente como estavam; só mudam os espaços e as maiúsculas das palavras-chave.

Calculado no seu dispositivo · fórmulas conferidas com resultados conhecidos · Como testamos

Como formatar SQL

  1. Cole uma consulta ou um script inteiro — vários comandos separados por ponto e vírgula, ou lotes separados por GO. A formatação acontece enquanto você cola.
  2. Escolha o banco em Dialeto para que as regras de aspas dele sejam entendidas (veja a tabela abaixo) — o padrão aqui é SQL Server — e como as palavras-chave são escritas: MAIÚSCULAS, minúsculas ou como estão.
  3. Escolha Formatar para uma cláusula por linha, com 2 espaços, 4 espaços ou tab, ou Uma linha para espremer cada comando numa linha só, para um log, um arquivo de configuração ou uma string no código.
  4. Toque em Copiar ao lado do resultado, ou em Baixar para salvar um arquivo .sql.

Como a consulta é organizada

O formatador lê o SQL como uma sequência de pedaços — palavras-chave, nomes, textos, números, operadores, comentários — e os distribui com algumas regras fixas:

Exemplo: relatório de clientes no SQL Server

O exemplo da caixa é uma consulta de relatório em uma linha, com comentário, CASE, a dica de tabela WITH (NOLOCK), um join com duas condições, uma lista IN com UFs e um HAVING. Formatada com as opções padrão:

-- clientes que mais compraram em 2026
SELECT
  c.id,
  c.nome,
  COUNT(p.id) AS pedidos,
  SUM(p.valor_total) AS gasto,
  CASE
    WHEN SUM(p.valor_total) > 5000 THEN 'ouro'
    ELSE 'padrão'
  END AS faixa
FROM
  clientes c WITH (nolock)
  LEFT JOIN pedidos p ON p.cliente_id = c.id
    AND p.status <> 'cancelado'
WHERE
  p.data_pedido >= '2026-01-01'
  AND c.uf IN ('SP', 'RJ', 'MG')
GROUP BY
  c.id,
  c.nome
HAVING
  COUNT(p.id) > 2
ORDER BY
  gasto DESC;

O comentário fica na sua linha, os textos mantêm as aspas e o acento de “padrão”, e os nomes c, p e gasto continuam como foram escritos. O WITH (NOLOCK) é reconhecido como dica de tabela, e não como o começo de uma CTE. Uma CTE com subconsulta, colunas entre colchetes e um texto Unicode N'…' fica assim:

WITH recentes AS (
  SELECT
    cliente_id
  FROM
    pedidos
  WHERE
    data_pedido > DATEADD(day, -30, GETDATE())
)
SELECT
  [Nome Completo],
  N'São Paulo' AS cidade
FROM
  dbo.clientes
WHERE
  id IN (
    SELECT
      cliente_id
    FROM
      recentes
  )

O que nunca muda

Textos, nomes entre aspas ou colchetes ("Pedido", `pedido`, [Data do Pedido]), números, comentários e corpos com $$ do PostgreSQL são copiados exatamente como estão. As maiúsculas mudam só nas palavras-chave do SQL e, logo antes de um parêntese, nos nomes de funções como COUNT( ou GETDATE(. Os nomes das suas tabelas e colunas mantêm a grafia — inclusive palavras que são palavra-chave em algum banco mas viram nome de coluna com frequência, como date, name, status, type e value. Um nome depois de ponto, como em t.order, é sempre tratado como nome. Nada é acrescentado nem tirado além de espaços, então a consulta formatada devolve o mesmo resultado.

Dialetos: o que a escolha muda

Cada banco escreve SQL de um jeito um pouco diferente, principalmente nas aspas. O dialeto diz ao formatador como ler o texto — ele nunca reescreve o seu SQL para outro banco.

DialetoLido de outro jeito
SQL padrão'texto' com '' para uma aspa dentro, "nome", -- comentário e /* comentário */
SQL Server (T-SQL)[nome] com ]] dentro, N'texto', @variaveis, tabelas temporárias #temp, comentários aninhados, e GO numa linha sozinha como separador de lotes
MySQL / MariaDB"texto" é texto, a barra invertida escapa ('D\'Ávila'), `nome`, # comentário; -- só abre comentário quando vem seguido de espaço
PostgreSQLCorpos $$ … $$ e $tag$ … $tag$ mantidos inteiros, textos E'…' com escapes, comentários /* /* */ */ aninhados, casts com ::, parâmetros $1
Oracle (PL/SQL)Aspas alternativas q'[D'Ávila]', variáveis :bind
SQLite[nome] e `nome` além de "nome"; parâmetros ?, ?1, :nome, @nome e $nome

A diferença importa: 'D\'Ávila' é um texto completo no MySQL, mas no SQL padrão e no SQL Server a barra invertida é um caractere comum, o texto termina na segunda aspa e a terceira abre um texto que nunca fecha. Com o dialeto errado você pode ver “Texto não fechado”.

Erros que ele aponta

O formatador não é um analisador completo de SQL e não confere se a consulta é válida no seu banco. Ele só para onde não consegue saber onde um pedaço termina: um texto, nome entre aspas, comentário ou corpo com $$ sem fechamento, um parêntese sem par e aspas curvas (‘ ’ “ ”) coladas do Word ou do WhatsApp. Cada um mostra a linha, a coluna e o ponto marcado com ^.

Limites e dicas

O seu SQL fica no seu aparelho

A formatação roda no navegador. Consultas costumam revelar nomes de tabelas, dados de clientes em literais — CPF, e-mail, telefone — e a estrutura do seu banco; nada disso é enviado nem registrado, e também não é salvo: ao recarregar a página, a caixa fica vazia.

Perguntas frequentes

Formatar muda o que a minha consulta faz?

Não. Só mudam os espaços e as maiúsculas das palavras-chave, e o SQL não diferencia maiúsculas nas palavras-chave. Textos, nomes entre aspas ou colchetes, números e comentários são copiados exatamente, então a consulta devolve as mesmas linhas.

Qual dialeto devo escolher?

O do banco onde a consulta roda. A escolha só muda como aspas, barras invertidas e comentários são lidos; se a consulta não usa nenhuma das formas especiais da tabela acima, todos os dialetos dão o mesmo resultado.

Serve para formatar SQL Server?

Sim, e o dialeto já começa em SQL Server (T-SQL): nomes entre colchetes, textos N'…', variáveis com @, tabelas #temp, dicas como WITH (NOLOCK) e o separador GO são reconhecidos.

Por que uma palavra como date ou name não ficou em maiúsculas?

Palavras como date, name, status, type e value são palavras-chave em alguns bancos, mas nomes de coluna muito comuns, então mantêm a grafia que você escreveu. Funções como count ou date só ficam em maiúsculas quando vêm seguidas de parêntese.

O meu SQL é enviado?

Não. O formatador roda como JavaScript no seu navegador, então as suas consultas não saem do aparelho, e ele funciona até offline depois que a página carrega.

Incorpore esta calculadora no seu site

Grátis para qualquer site ou blog. Cole este código onde a calculadora deve aparecer:

Última atualização: 16 de outubro de 2026

Menu

Categorias

Calculadoras financeiras16 calculadorasCalculadoras para negócios e compras5 calculadorasCalculadoras de saúde e bem-estar7 calculadorasCalculadoras de matemática e escola15 calculadorasCalculadoras de datas e horas9 calculadorasContagens regressivas para datas especiais8 calculadorasFerramentas para o dia a dia33 calculadorasFerramentas de microfone, câmera e som10 calculadorasFerramentas de imagem e PDF18 calculadorasFerramentas para desenvolvedores7 calculadoras

CalcWorthy

SobreContatoPolítica de privacidadeTermos de uso

Idioma

Idioma
PortuguêsPortugueseEnglishEnglishالعربيةArabicবাংলাBanglaDeutschGermanEspañolSpanishفارسیPersianFrançaisFrenchעבריתHebrewहिन्दीHindiBahasa IndonesiaIndonesianItalianoItalian日本語Japanese한국어KoreanBahasa MelayuMalayNederlandsDutchPolskiPolishРусскийRussianไทยThaiTürkçeTurkishУкраїнськаUkrainianاردوUrduTiếng ViệtVietnamese简体中文Simplified Chinese