À propos de cet outil
Les requêtes SQL deviennent rapidement longues et complexes : jointures sur de nombreuses tables, sous-requêtes imbriquées, grandes clauses WHERE avec de nombreuses conditions, expressions CASE complexes. Le SQL compact entassé sur quelques lignes est illisible ; Un SQL correctement indenté avec une majuscule cohérente rend la structure de la requête visible en un coup d'œil. Le formatage fait la différence entre une requête que vous pouvez déboguer et une autre que vous ne pouvez pas.
Ce formateur analyse SQL et émet une sortie indentée et correctement masquée. Les mots clés SQL (SELECT, FROM, WHERE, JOIN, GROUP BY) sont généralement en majuscules, les noms de tables et de colonnes correspondent à la source et l'indentation reflète l'imbrication (sous-requêtes indentées à l'intérieur de leurs parents, branches CASE indentées). La prise en charge de plusieurs dialectes gère les différences MySQL, PostgreSQL, SQL Server, Oracle et SQLite.
Le formatage est non destructif : la requête formatée est fonctionnellement identique à l'entrée. Seuls les espaces et la casse changent.
Pourquoi formater SQL
Lire du SQL dense et non formaté est mentalement éprouvant. Identifier quelles conditions appartiennent à quelles JOIN, où commencent et se terminent les sous-requêtes et comment les branches CASE sont liées, tout cela devient plus difficile lorsque tout se déroule sur quelques lignes. Le SQL formaté est plus rapide à lire et réduit les bogues dus à une mauvaise lecture de la structure.
La révision du code en profite particulièrement. Les réviseurs peuvent rapidement comprendre ce que fait une requête lorsqu'elle est formatée ; la lecture de SQL non formaté pendant la révision encourage le saut ou l'approbation automatique. Le SQL formaté produit également des différences significatives lorsque les requêtes changent.
Détails techniques
L'analyse SQL nécessite de comprendre le dialecte, car différentes bases de données étendent la grammaire de différentes manières. Le formateur utilise généralement un tokenizer pour identifier les mots-clés, les identifiants, les littéraux et la ponctuation, puis produit une sortie avec des règles pour les espaces et l'indentation entre les jetons.
Règles d'indentation : SELECT, FROM, WHERE, GROUP BY, ORDER BY chacun sur sa propre ligne. Tables jointes sur les lignes suivantes en retrait sous FROM. Conditions dans WHERE sur des lignes séparées pour plus de lisibilité. Sous-requêtes dans leurs propres blocs en retrait.
Conventions de casse : les mots-clés en majuscules (SELECT, FROM, WHERE) sont les plus courants. Certaines équipes préfèrent les minuscules. Les identifiants (noms de table et de colonne) préservent la casse source.
Questions fréquentes
- Le formatage modifie-t-il le comportement de la requête ?
- Non. Le formatage SQL ajuste uniquement les espaces, les sauts de ligne et la casse des mots clés. La logique de requête, le plan d'exécution et les résultats restent identiques. C'est purement une amélioration de la lisibilité.
- Quels dialectes SQL sont pris en charge ?
- L'outil prend en charge le SQL standard et les dialectes spécifiques : MySQL, PostgreSQL, SQLite, SQL Server (T-SQL) et Oracle PL/SQL. Les mots-clés et fonctions spécifiques au dialecte sont reconnus correctement.
- Gère-t-il les sous-requêtes et les CTE ?
- Oui. Les expressions de table communes (clauses WITH), les sous-requêtes imbriquées, les fonctions de fenêtre et les chaînes JOIN complexes sont formatées avec des niveaux d'indentation appropriés.
- Puis-je l'utiliser pour les procédures stockées ?
- Le formateur gère mieux les instructions SQL uniques. Les procédures, déclencheurs et fonctions multi-instructions peuvent fonctionner, mais le formatage de la logique procédurale complexe (IF/ELSE, boucles) dépend du dialecte.
- Les mots-clés doivent-ils être en majuscules ou en minuscules ?
- Les conventions varient. Les mots-clés en majuscules sont traditionnels et courants. Les minuscules sont de plus en plus adoptées dans les guides de style modernes. Choisissez-en un et restez cohérent dans la base de code.
- Est-ce qu'il formate les procédures stockées ?
- La plupart des formateurs gèrent la syntaxe des procédures stockées (CREATE PROCEDURE, blocs BEGIN/END, flux de contrôle). Les extensions spécifiques au dialecte peuvent être partiellement prises en charge.
- Mon SQL est-il téléchargé ?
- Non. Le formatage s'effectue dans votre navigateur.
- Puis-je formater à partir de la ligne de commande ?
- Plusieurs formateurs SQL proposent des outils CLI (sqlfluff, sql-formatter). Utilisez-les pour le formatage par lots ou l'intégration CI. Les formateurs de navigateur sont destinés à une utilisation ponctuelle et ponctuelle.