SQL-Formatter et Minificateur – Documentation complète, Bonnes pratiques et Intégrations
Le Zerlo SQL-Formatter et Minificateur rend le SQL immédiatement lisible (Rendre lisible) ou compact (Minifier). Vous contrôlez Indent (2/4/8 espaces), Keyword-Case (MAJUSCULE/minuscules/Conserver) et dans la section Avancé Suppression des commentaires ainsi que Forcer le point-virgule. Via Accès rapide des extraits d'exemples sont disponibles, et avec Auto-test vous vérifiez le comportement en quelques secondes. La page est accessible ici: zerlo.net/formattersql.
Contenu
- Démarrage rapide
- Aperçu des fonctions
- Exemples d'accès rapide (cas d'utilisation)
- Options avancées (Détails et pièges)
- Catégories d'applications typiques (12 scénarios)
- Intégration : site Web, iFrame, Teams
- API JSON optionnelle (avec des exemples)
- Auto-test (étape par étape)
- Conseils pro, performance et sécurité
- Conseils sur les dialectes et limites
- Dépannage & FAQ
- Essayer maintenant
1) Démarrage rapide
- Ouvre zerlo.net/formattersql.
- Colle ton SQL à gauche ou tape-le.
- Choisis le Mode: Rendre lisible (lisible) ou Minifier (compact).
- Définis Indentation (2/4/8) et Casse des mots-clés (UPPER/lower/Preserve) pour..
- Optionnel: Supprimer les commentaires, Forcer le point-virgule.
- Clique Formater – – le résultat apparaît à droite, y compris. Copier et Enregistrer au format .sql.
- Dans Auto-test tu peux tester automatiquement les règles les plus importantes..
2) Fonctions en aperçu
- Rendre lisible :: Sauts de ligne et indentation pour
SELECT,FROM,JOIN,WHERE,GROUP BY,HAVING,ORDER BY,LIMIT,UNION,WITH,CASE… - Minifier:: Supprime les espaces inutiles; idéal pour le transport/transmission ou l'intégration. Optionnel avec suppression des commentaires.
- Casse des mots-clés:: UPPER, lower ou Preserve (Chaînes/identifiants restent inchangés).
- Profil d'Indentation:: 2, 4 ou 8 Spaces – cohérent à l'échelle de l'équipe..
- Avancé:: Supprimer les commentaires (à ligne unique / multi-ligne) & Forcer le point-virgule.
- Accès rapide:: Exemples prédéfinis : simples
SELECT, JOIN avec agrégation, CASE et sous-requête, CTE + Fenêtre, INSERT … RETURNING, UPDATE avec CASE, DELETE et EXISTS. - Auto-test:: 1-Klick-Verifikation: Règles de Beautify, comportement de Minifier, changement d'Indent, Casse des mots-clés, Point-virgule.
- Boutons pratiques :: Formater, API JSON (POST) ici tester, Copier, Enregistrer au format .sql.
- Sorties :: Panneau des résultats, Auto-test, -Panneau,.
3) Exemples d'accès rapide (cas d'utilisation)
Ces exemples couvrent les motifs les plus courants et sont idéaux comme point de départ.
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) Options avancées (Détails et pièges)
- Supprimer les commentaires :: Supprime
-- ...et/* ... */. Idéal pour un transport « propre » (CI, embedding). Attention : les commentaires de documentation sont perdus – préalablement, éventuellement extraire/archiver. - Forcer le point-virgule:: Ajoute
;s'il n'en existe pas à la fin – empêche les erreurs de parse dans les scripts. Si un;existe déjà, il n'est pas dupliqué.
5) Catégories d'applications typiques (12 scénarios)
- Révisions de code :: Une mise en page homogène accélère les revues et évite les discussions de style.
- Diagnostic :: Les
JOIN/CASEcomplexes deviennent immédiatement visuels et lisibles. - Échange de connaissances :: SQL lisible pour Wiki/Confluence/README.
- Migrations et scripts :: Sécurité du point-virgule, blocs clairs et uniques.
- Intégration API :: Minifier + suppression des commentaires pour intégrer le SQL dans les apps/services.
- BI/Reporting :: Nettoyer les requêtes issues d'outils BI avant de les partager.
- Apprentissage et formation :: Afficher de manière structurée les CTE et les fonctions de fenêtre.
- Refactorisation :: D'abord le rendu lisible, puis isolation/optimisation des sous-parties.
- Reproduction d'erreurs :: Requêtes clairement structurées pour les tickets de support.
- Application du guide de style :: Appliquer de manière cohérente les standards d'équipe (Indent/Case).
- Modèles :: „Accès rapide“ comme base pour de nouvelles requêtes.
- Préparation de la version :: Minifier pour des artefacts stables et transportables..
6) Intégration dans Site Web/Teams
A) Utilisation directe
Voici l'outil : zerlo.net/formattersql
B) Intégration iFrame (Intranet/Backoffice)
<iframe src="https://zerlo.net/formattersql" title="SQL Formatter" width="100%" height="900" style="border:0; border-radius:12px;"></iframe>
C) Guide de style d'équipe (base)
- Indentation : 2 ou 4 espaces (cohérent tout au long).
- Casse des mots-clés : MAJUSCULE (Chaînes/Identifiants restent inchangés).
- JOINs : conditions directement sur
JOIN ... ON; aucun filtre caché dansWHERE. - CASE: CASE : Chaque
WHEN/THENdans sa propre ligne ; utile; raisonnableELSE. - Point-virgule : Toujours mettre dans les scripts.
7) API JSON optionnelle
Vous pouvez automatiser le formatage dans les outils/CI/CD. Un exemple concis :
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) Auto-test (étape par étape)
- Clique dans l'outil ci-dessous sur Auto-test – – trois cas clés sont vérifiés automatiquement..
- Cas de mise en forme : Mots-clés MAJUSCULE, sauts de ligne clairs, indentation propre.: Keywords UPPER, Cas de Beautify :
- Cas de Minification:: Commentaires supprimés (si l'option est activée), sortie compacte.
- Cas d'Indentation:: Changement visuel entre 2/4/8 espaces..
- Le résultat apparaît dans le panneau Auto-test ; en cas d'écarts : vérifier les options et, si nécessaire, changer de mode.
9) Conseils pro, performance et sécurité
- Scripts volumineux :: Après le Beautify, diviser en blocs thématiques (CTEs, DDL vs DML), puis versionner chacun séparément..
- Vitesse de revue :: Utilise l’« Accès rapide » comme squelette standard ; évite le désordre lors des nouvelles requêtes..
- Minimiser les sources d'erreur :: „Forcer le point-virgule“ à activer dans les pipelines de migration..
- Les chaînes restent inchangées :: Le formatter n’édite pas le contenu entre guillemets ; la logique métier reste sûre..
- Vie privée :: Aucune exécution de SQL – seul texte. Ne pas stocker durablement les contenus sensibles dans des outils tiers..
- Simplification des comparaisons :: Rendre lisible, puis comparer avec Git-Diff – les différences sautent aux yeux..
10) Conseils de dialecte et limites
- MySQL/MariaDB: Les mots-clés et les fonctions standard sont bien reconnus..
- PostgreSQL/SQLite: CTEs/Window-Funktionen CTEs/fonctions de fenêtre sont correctement indentées ; cela convient.
RETURNINGCela se prête bien.. - Exotiques :: Des dialectes très spécifiques (par ex. indices propriétaires) restent inchangés sur le contenu ; le formatage est effectué de manière générique..
- Aucune analyse sémantique :: Le formatter ne comprend pas la logique – il structure le texte. Les erreurs de syntaxe restent des erreurs de syntaxe..
11) Dépannage & FAQ
„Rien ne change ?“ – Vérifie le mode et les options ; l'entrée ne doit pas être vide.
„Points-virgules en double ?“ – Option « forcer » + ; existant : désactiver l'option.
„Les commentaires n'ont pas été supprimés“ – Activez la suppression des commentaires ou réglez le mode sur « Minifier ».
„Très longues requêtes ralentissent le navigateur“ – Formater de gros blocs successivement ou utiliser l'API.
„Mots-clés dans les chaînes modifiés ?“ – Cela ne devrait pas arriver ; vérifie s'il s'agissait de vraies chaînes (guillemets), pas des backticks.
12) Maintenant, essayer
Démarre ici : zerlo.net/formattersql