Guía completa de formateo SQL: embellecimiento, minificación y consejos de depuración

Utilidades

¿Por qué formatear SQL?

-- ❌ Comprimido en una línea—difícil de leer
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;

-- ✅ Formateado—la estructura es 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;

El formateo hace que el flujo SELECT → FROM → JOIN → WHERE → ORDER BY sea obvio de un vistazo.


Uso del formateador SQL de ToolsKu

Pasos

  1. Abre el Formateador SQL
  2. Pega tu SQL
  3. Embellecimiento automático (palabras clave en mayúsculas, sangría alineada)
  4. Cambia al modo minificar para eliminar espacios en blanco

Dialectos SQL compatibles

Dialecto Notas
SQL SQL estándar
MySQL Sintaxis específica de MySQL
PostgreSQL Sintaxis específica de PostgreSQL
SQLite Base de datos ligera
T-SQL SQL Server
PL/SQL Oracle

Convenciones de formateo

Palabras clave en mayúsculas

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

Reglas de sangría

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;

Sangría 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;

Escenarios prácticos

1. Depuración de SQL desde registros

Los registros de producción a menudo imprimen SQL minificado:

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

Cópialo en el Formateador SQL para analizarlo con claridad.

2. SQL generado por ORM

// Sequelize / TypeORM SQL suele estar sin formatear
console.log(query.getSql());
// → SELECT `User`.`id`, `User`.`name` FROM `users` AS `User` WHERE ...

Formatea para ver lo que el ORM realmente ejecuta.

3. JSON a SQL

Una API devuelve un array JSON—necesitas sentencias INSERT:

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

Usa JSON a SQL para generar:

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

4. Minificar SQL (ahorrar ancho de banda)

El SQL formateado es para lectura; el SQL minificado es para transporte:

-- Formateado: 15 líneas, 380 caracteres
-- Minificado: 1 línea, 195 caracteres (49% más pequeño)

Problemas comunes de formateo SQL

Palabras clave dentro de cadenas permanecen en minúsculas

-- ✅ Correcto: 'select' dentro de una cadena no cambia
SELECT * FROM logs WHERE message LIKE '%select%'

Comentarios preservados

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

El formateador mantiene los comentarios de línea -- y los comentarios de bloque /* */.


Resumen

El formateo SQL es un hábito de alto impacto para desarrolladores de bases de datos. El Formateador SQL de ToolsKu admite múltiples dialectos y se ejecuta localmente en el navegador—combínalo con JSON a SQL para un flujo de trabajo completo de datos a SQL.

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