Guia completo de formatação SQL: embelezamento, minificação e dicas de depuração

Utilitários

Por que formatar SQL?

-- ❌ Comprimido em uma linha—difícil de ler
SELECT u.id,u.name,o.total FROM users u JOIN orders o ON u.id=o.user_id WHERE o.status='paid' AND o.created_at>'2024-01-01' ORDER BY o.total DESC LIMIT 10;

-- ✅ Formatado—a estrutura é clara
SELECT
  u.id,
  u.name,
  o.total
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE o.status = 'paid'
  AND o.created_at > '2024-01-01'
ORDER BY o.total DESC
LIMIT 10;

A formatação torna o fluxo SELECT → FROM → JOIN → WHERE → ORDER BY óbvio à primeira vista.


Usando o Formatador SQL do ToolsKu

Passos

  1. Abra o Formatador SQL
  2. Cole seu SQL
  3. Embelezamento automático (palavras-chave em maiúsculas, indentação alinhada)
  4. Mude para o modo minificar para remover espaços em branco

Dialetos SQL suportados

Dialeto Notas
SQL SQL padrão
MySQL Sintaxe específica do MySQL
PostgreSQL Sintaxe específica do PostgreSQL
SQLite Banco de dados leve
T-SQL SQL Server
PL/SQL Oracle

Convenções de formatação

Palavras-chave em maiúsculas

SELECT, FROM, WHERE, JOIN, ON, AND, OR, ORDER BY, GROUP BY, HAVING, LIMIT

Regras de indentação

SELECT
  column1,
  column2,
  CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ELSE default_result
  END AS calculated
FROM table1
  JOIN table2 ON table1.id = table2.ref_id
WHERE status = 'active'
  AND created_at >= '2024-01-01'
GROUP BY column1, column2
HAVING COUNT(*) > 5
ORDER BY column1 DESC;

Indentação de subconsultas

SELECT *
FROM (
  SELECT
    user_id,
    SUM(amount) AS total
  FROM orders
  WHERE status = 'paid'
  GROUP BY user_id
) AS user_totals
WHERE total > 1000;

Cenários práticos

1. Depuração de SQL de logs

Logs de produção frequentemente imprimem SQL minificado:

[2024-06-01 10:00:00] QUERY: SELECT * FROM users WHERE email='test@example.com' AND deleted_at IS NULL

Copie no Formatador SQL para analisar com clareza.

2. SQL gerado por ORM

// Sequelize / TypeORM SQL geralmente não está formatado
console.log(query.getSql());
// → SELECT `User`.`id`, `User`.`name` FROM `users` AS `User` WHERE ...

Formate para ver o que o ORM realmente executa.

3. JSON para SQL

Uma API retorna um array JSON—você precisa de instruções INSERT:

[
  {"name": "Alice", "age": 30},
  {"name": "Bob", "age": 25}
]

Use JSON para SQL para gerar:

INSERT INTO users (name, age) VALUES ('Alice', 30);
INSERT INTO users (name, age) VALUES ('Bob', 25);

4. Minificar SQL (economizar banda)

SQL formatado é para leitura; SQL minificado é para transporte:

-- Formatado: 15 linhas, 380 caracteres
-- Minificado: 1 linha, 195 caracteres (49% menor)

Problemas comuns de formatação SQL

Palavras-chave dentro de strings permanecem em minúsculas

-- ✅ Correto: 'select' dentro de uma string não muda
SELECT * FROM logs WHERE message LIKE '%select%'

Comentários preservados

SELECT id, name  -- username
FROM users       /* active user count */
WHERE status = 1

O formatador mantém comentários de linha -- e comentários de bloco /* */.


Resumo

A formatação SQL é um hábito de alto impacto para desenvolvedores de banco de dados. O Formatador SQL do ToolsKu suporta múltiplos dialetos e roda localmente no navegador—combine com JSON para SQL para um fluxo completo de dados para SQL.

#SQL#格式化#数据库#查询优化#开发