L'importance de la lisibilité du code SQL
Un code SQL mal aligné, écrit sur une seule ligne ou dépourvu de structure logique ralentit le travail de développement et complique la maintenance des bases de données. La mise en forme systématique du code SQL permet de repérer instantanément les jointures manquantes, les filtres mal imbriqués ou les parenthèses orphelines. Pour les développeurs, analystes de données, administrateurs de bases de données (DBA) et personnels de soutien technique, un code propre réduit le temps de débogage et facilite la collaboration lors des revues de code.
Ce formateur applique des règles d'indentation et de casse rigoureuses pour transformer un bloc de code brut en une requête structurée et facile à lire.
Configuration des paramètres de mise en forme
Pour s'adapter aux standards de codage de chaque équipe, l'outil propose plusieurs options de configuration applicables à la requête saisie:
- Dialecte: Le comportement du formateur s'ajuste selon les spécificités syntaxiques du moteur cible. Les dialectes pris en charge sont: Standard SQL, PostgreSQL, MySQL, MariaDB, SQL Server (T-SQL), Oracle (PL/SQL), SQLite, BigQuery, Snowflake et Spark SQL.
- Indentation: Permet de définir l'espacement des blocs de code. Les options disponibles incluent un retrait de 2 espaces, 4 espaces ou l'utilisation de tabulations.
- Mots-clés: Permet d'harmoniser la casse des instructions SQL. Vous pouvez forcer les mots-clés en majuscules (MAJ), en minuscules (min) ou conserver la casse d'origine (Garder).
La longueur maximale acceptée pour la requête SQL d'entrée est de 300 000 caractères.
Analyse et statistiques de la requête formatée
Une fois le traitement effectué, l'outil affiche le code structuré accompagné d'indicateurs précis sur le volume du texte généré:
| Indicateur | Description |
|---|---|
| Lignes | Le nombre de lignes dans le SQL formaté. |
| Caractères | Le nombre total de caractères du SQL formaté. |
| Taille | La taille mémoire du SQL formaté. |
Si le code soumis comporte des erreurs de syntaxe qui empêchent sa restructuration, l'outil affiche le message d'erreur suivant: « Impossible de formater ce SQL — vérifiez la syntaxe. ». En cas d'erreur, l'affichage du résultat précédent reste visible et n'est pas écrasé. Si la requête dépasse la limite de taille autorisée, le message « Cette requête est trop volumineuse à traiter. Essayez-en une plus petite. » apparaît.
L'action sur le bouton « Effacer » réinitialise l'ensemble de l'interface: elle vide les zones de saisie et de résultat, masque les détails des erreurs et affiche la mention « Effacé. ».
Explication clause par clause du fonctionnement de la requête
Au-delà de la simple mise en forme esthétique, l'outil propose une décomposition logique de la requête en langage clair. Cette fonctionnalité analyse la structure syntaxique de l'instruction pour expliquer le rôle de chaque composant. Contrairement à un plan d'exécution de base de données, qui dépend des index et des statistiques réelles du moteur, cette analyse se base uniquement sur la grammaire de la requête. Elle fonctionne donc parfaitement sur du SQL partiel ou propre à un vendeur spécifique.
L'explication indique d'abord le nombre d'instructions traitées via le message « {count} instruction(s) expliquée(s). ». Pour les scripts contenant plusieurs requêtes, chaque bloc est identifié par l'étiquette « Instruction {n} ». Si le script soumis comporte plus de 25 instructions, l'analyse se limite aux 25 premières et affiche la note « Seules les 25 premières sont affichées. ».
Types d'instructions identifiés (Kind)
Pour chaque instruction détectée, l'outil détermine sa nature globale:
- SELECT: Une requête qui lit et renvoie des lignes sans rien modifier.
- INSERT: Ajoute de nouvelles lignes à une table.
- UPDATE: Modifie les valeurs de lignes déjà existantes.
- DELETE: Supprime des lignes d’une table.
- CREATE: Définit un nouvel objet: table, vue ou index.
- ALTER: Modifie la définition d’un objet existant.
- DROP: Supprime définitivement un objet de la base.
- TRUNCATE: Vide une table en supprimant toutes ses lignes.
- WITH: Crée un résultat temporaire nommé (CTE) pour la requête qui suit.
- MERGE: Insère, met à jour ou supprime des lignes en une seule opération.
- OTHER: Une instruction SQL.
Rôles des clauses individuelles (Role)
L'outil détaille ensuite le rôle précis de chaque clause au sein de l'instruction:
- SELECT: Les colonnes et expressions renvoyées.
- SELECT DISTINCT: Les colonnes renvoyées, sans les doublons.
- FROM: La table (ou sous-requête) d’où les données sont lues.
- JOIN: Associe chaque ligne aux lignes correspondantes d’une autre table.
- WHERE: Ne garde que les lignes qui remplissent cette condition.
- GROUP BY: Regroupe les lignes pour calculer des agrégats comme COUNT ou SUM par groupe.
- HAVING: Filtre ces groupes une fois les agrégats calculés.
- ORDER BY: Trie les lignes du résultat.
- LIMIT: Limite le nombre de lignes renvoyées.
- OFFSET: Ignore un certain nombre de lignes avant de renvoyer les résultats.
- UNION: Combine ces résultats avec ceux d’une autre requête.
- VALUES: Les valeurs des lignes insérées.
- INTO: La table qui reçoit les nouvelles lignes.
- SET: Les nouvelles valeurs de colonnes à affecter.
- UPDATE: La table dont les lignes sont modifiées.
- DELETE FROM: La table dont les lignes sont supprimées.
- WITH: Définit un résultat temporaire nommé utilisé plus bas.
- STATEMENT: L’instruction, telle quelle.
Confidentialité et traitement local des données
La sécurité des données est un critère critique lors de la manipulation de requêtes SQL pouvant contenir des structures de tables sensibles ou des filtres confidentiels.
Le traitement de vos requêtes s'effectue selon les règles suivantes:
- Votre SQL est mis en forme et analysé dans votre navigateur.
- Rien n’est téléversé vers BroBroGo.
- Votre SQL ne quitte jamais la page.
De plus, l'outil enregistre vos brouillons de requêtes ainsi que vos préférences de thème (comme le mode sombre) localement dans votre navigateur pour vous permettre de les retrouver lors de votre prochaine visite.
FAQ
Quels dialectes SQL peut-il mettre en forme?
SQL standard, PostgreSQL, MySQL, MariaDB, SQL Server (T-SQL), Oracle (PL/SQL), SQLite, BigQuery, Snowflake et Spark SQL. Choisissez celui qui correspond à votre base pour que les mots-clés et les guillemets soient traités comme l’attend ce moteur.
Comment fonctionne l’explication en langage clair?
Elle lit la structure de la requête — le type d’instruction et chaque clause comme SELECT, FROM, JOIN, WHERE, GROUP BY et ORDER BY — et décrit le rôle de chacune. Elle décrit la forme de la requête, pas un plan d’exécution de la base, et fonctionne donc même sur du SQL partiel ou propre à un moteur.
Est-ce sécuritaire de coller des requêtes de production?
Oui. La mise en forme et l’analyse s’exécutent entièrement dans votre navigateur: votre SQL ne quitte jamais la page. Aucun traitement n'est déporté sur un serveur externe.