Guía completa de formateo SQL: embellecimiento, minificación y consejos de depuración
¿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
- Abre el Formateador SQL
- Pega tu SQL
- Embellecimiento automático (palabras clave en mayúsculas, sangría alineada)
- 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.