SQL-Formatter y Minifier – Documentación completa, Buenas prácticas e Integraciones
El Zerlo SQL-Formatter & Minifier hace que SQL sea legible de inmediato (Beautify) o compacto (Minify). Tú controlas Indentación (2/4/8 espacios), Caso de palabras clave (UPPER/minúsculas/Preservar) y en la sección Advanced Eliminación de comentarios así como Forzar punto y coma. A través de Acceso rápido hay fragmentos de ejemplo disponibles, y con Autoevaluación verificas el comportamiento en segundos. La página está disponible aquí: zerlo.net/formattersql.
Contenido
- Inicio rápido
- Funciones en resumen
- Ejemplos de acceso rápido (Casos de uso)
- Opciones avanzadas (Detalles y trampas)
- Categorías de aplicación típicas (12 escenarios)
- Integración: sitio web, iFrame, Teams
- API JSON opcional (con ejemplos)
- Autoevaluación (Paso a paso)
- Consejos profesionales, Rendimiento y Seguridad
- Notas sobre dialectos y límites
- Solución de problemas y Preguntas frecuentes
- Pruébalo ahora
1) Inicio rápido
- Abre zerlo.net/formattersql.
- Pega tu SQL a la izquierda o escríbelo.
- Selecciona el Modo: Formatear (legible) o Minificar (compacto).
- Configura Indentación (2/4/8) y Caso de palabras clave (UPPER/lower/Preserve) ..
- Opcional: Eliminar comentarios, Forzar punto y coma.
- Haz clic Formatear – – el resultado aparece a la derecha, incluyendo Copiar y Guardar como .sql.
- En Autoevaluación puedes comprobar automáticamente las reglas más importantes..
2) Funciones en general
- Formatear:: Saltos de línea y sangría para
SELECT,FROM,JOIN,WHERE,GROUP BY,HAVING,ORDER BY,LIMIT,UNION,WITH,CASE… - Minificar:: Elimina espacios en blanco innecesarios; ideal para transporte/embebido. Opcional con eliminación de comentarios.
- Caso de palabras clave:: UPPER, lower o Preserve (Cadenas/Identificadores se mantienen sin cambios).
- Perfil de indentación:: 2, 4 o 8 Spaces – consistente para todo el equipo..
- Avanzado:: Eliminar comentarios (de una o varias líneas) & Forzar punto y coma.
- Acceso rápido:: Ejemplos predefinidos: simples
SELECT, JOIN con agregación, CASE y Subconsulta, CTE + Funciones de ventana, INSERT … RETURNING, UPDATE con CASE, DELETE + EXISTS. - Autoevaluación:: 1-Klick-Verifikation: Reglas de Beautify, comportamiento de Minify, cambio de indentación, caso de palabras clave y punto y coma.
- Botones prácticos:: Formatear, API JSON (POST) aquí, Copiar, Guardar como .sql.
- Resultados:: Panel de resultados, Autoevaluación, -Panel,.
3) Ejemplos de acceso rápido (Casos de uso)
Estos ejemplos cubren los patrones más comunes y son ideales como punto de partida.
SELECT id, name FROM products WHERE status = 'active';
SELECT c.id, c.title, COUNT(p.id) AS products
FROM categories c
LEFT JOIN products p ON p.category_id = c.id
GROUP BY c.id, c.title
ORDER BY products DESC;
SELECT u.id, u.email,
CASE
WHEN o.total >= 1000 THEN 'gold'
WHEN o.total >= 200 THEN 'silver'
ELSE 'bronze'
END AS tier
FROM users u
LEFT JOIN LATERAL (
SELECT SUM(total) AS total
FROM orders
WHERE user_id = u.id
) o ON TRUE;
WITH ranked AS (
SELECT id, customer_id, total,
ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY total DESC) AS rn
FROM orders
)
SELECT * FROM ranked WHERE rn = 1;
INSERT INTO users(email, role)
VALUES ('[email protected]', 'editor')
RETURNING id, email;
UPDATE accounts
SET status = CASE
WHEN balance < 0 THEN 'overdue'
WHEN balance = 0 THEN 'zero'
ELSE 'ok'
END
WHERE active = 1;
DELETE FROM sessions s
WHERE EXISTS (
SELECT 1 FROM users u
WHERE u.id = s.user_id AND u.deleted_at IS NOT NULL
);
4) Opciones avanzadas (Detalles y trampas)
- Eliminar comentarios:: Elimina
-- ...y/* ... */. Ideal para transporte limpio (CI, Embedding). Atención: los comentarios de documentación se pierden; antes, si es posible, extraer/archivar. - Forzar punto y coma:: Añade
;si no hay uno al final – previene errores de analizador en scripts. Si ya existe;, no se duplica.
5) Categorías de aplicación típicas (12 escenarios)
- Revisiones de código:: Un diseño uniforme acelera las revisiones y evita discusiones de estilo.
- Depuración:: Las combinaciones complejas de
JOINyCASEse vuelven visualmente evidentes de inmediato. - Intercambio de conocimientos:: SQL legible para Wiki/Confluence/README.
- Migraciones y scripts:: Seguridad de punto y coma, bloques únicos.
- Inyección de API:: Minify + eliminación de comentarios, para incorporar SQL en apps/servicios.
- BI/Reporting:: Purgar consultas de herramientas BI antes de compartirlas.
- Aprendizaje y formación:: Mostrar estructuradamente CTEs/Funciones de ventana.
- Refactorización:: Primero formatear, luego aislar/optimizar secciones.
- Reproducción de errores:: Consultas claramente estructuradas para tickets de soporte.
- Cumplimiento del estilo de guía:: Aplicar de forma consistente el estándar del equipo (Indent/Case)..
- Plantillas:: „Acceso rápido“ como base para nuevas consultas.
- Preparación de lanzamientos:: Minificar para artefactos estables y transportables..
6) Integración en Website/Teams
A) Usarlo directamente
Aquí está la herramienta: zerlo.net/formattersql
B) Integración de iFrame (Intranet/Backoffice)
<iframe src="https://zerlo.net/formattersql" title="SQL Formatter" width="100%" height="900" style="border:0; border-radius:12px;"></iframe>
C) Guía de estilo del equipo (Base)
- Indentación: 2 o 4 espacios (de forma consistente).
- Caso de palabras clave: UPPER (Cadenas/Identificadores permanecen sin cambios).
- JOINs: condiciones directamente a
JOIN ... ON; sin filtros ocultos enWHERE. - CASE: CASE: Cada
WHEN/THENen su propia línea; significativo; sentidoELSE. - Punto y coma: siempre incluir en los scripts.
7) API JSON opcional
Puedes automatizar el formateo en herramientas CI/CD. Un ejemplo breve:
POST https://zerlo.net/formattersql?api=1
Content-Type: application/json
{
"sql": "select id,name from users where id=1",
"mode": "beautify",
"options": { "indent": 4, "keywordCase": "upper", "stripComments": false, "ensureSemicolon": true }
}
{
"ok": true,
"result": "SELECT id, name\nFROM users\nWHERE id = 1;",
"stats": { "ms": 4, "inLen": 43, "outLen": 47 }
}
// Node.js (fetch)
const res = await fetch("https://zerlo.net/formattersql?api=1", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
sql: "SELECT * FROM orders WHERE created_at >= NOW() - INTERVAL '7 days';",
mode: "beautify",
options: { indent: 2, keywordCase: "upper", stripComments: true, ensureSemicolon: true }
})
});
const data = await res.json();
console.log(data.result);
<?php
// PHP
$payload = [
"sql" => "SELECT COUNT(*) FROM products;",
"mode" => "minify",
"options" => [ "indent" => 2, "keywordCase" => "preserve", "stripComments" => true, "ensureSemicolon" => true ]
];
$ch = curl_init("https://zerlo.net/formattersql?api=1");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true
]);
$resp = curl_exec($ch);
curl_close($ch);
echo $resp;
8) Autoevaluación (Paso a paso)
- Haz clic en la herramienta a continuación: Autoevaluación – – se prueban automáticamente tres casos clave..
- Caso Beautify:: Keywords UPPER, Palabras clave UPPER, saltos de línea claros, indentación limpia.
- Caso Minify:: Comentarios eliminados (si la opción está activa), salida compacta.
- Caso de Indentación:: Cambio visible entre 2/4/8 espacios..
- El resultado aparece en el panel de Autoevaluación; si hay diferencias: verifique las opciones y cambie el modo si es necesario.
9) Consejos profesionales, Rendimiento y Seguridad
- Scripts grandes:: Después del 'Beautify', dividir en bloques temáticos (CTEs, DDL vs DML), luego versionarlos individualmente..
- Velocidad de revisión:: Utiliza 'Acceso rápido' como plantilla estándar; evita desorden con consultas nuevas..
- Minimizar fuentes de error:: „Forzar punto y coma“ activarlo en pipelines de migración..
- Las cadenas permanecen sin cambios:: El formateador no edita contenidos entre comillas; la lógica de negocio permanece segura..
- Privacidad:: No ejecutar SQL; es solo texto. No almacenar contenidos sensibles de forma permanente en herramientas ajenas..
- Las comparaciones se facilitan:: Beautify, luego comparar con Git-Diff – las diferencias saltan a la vista..
10) Notas sobre dialectos y límites
- MySQL/MariaDB: Las palabras clave y funciones estándar se reconocen bien..
- PostgreSQL/SQLite: CTEs/Window-Funktionen CTEs/Funciones de ventana se indentan correctamente;
RETURNINGse recomienda.. - Exóticas:: Sintaxis de dialectos muy específica (p. ej. hints propietarios) permanece en contenido; el formateo se realiza de forma genérica..
- Sin análisis semántico:: El formateador no “entiende” la lógica – sólo estructura el texto. Los errores de sintaxis permanecen como errores de sintaxis..
11) Solución de problemas y Preguntas frecuentes
„¿No cambia nada?“ – Verifica el modo y las opciones; la entrada no debe estar vacía.
„¿Punto y coma doble?“ – Opción 'forzar' + ; ya existente: desactivar la opción.
„Los comentarios no fueron eliminados“ – Activar la eliminación de comentarios o establecer el modo en 'Minify'
„Consultas muy largas se retrasan en el navegador“ – Formatear bloques grandes uno tras otro o usar la API.
„¿Palabras clave en cadenas cambiadas?“ – No debería ocurrir; verifica si eran cadenas reales (comillas, no backticks).
12) Ahora probar
Comienza aquí: zerlo.net/formattersql