Formateur SQL
Formate le texte SQL pour une meilleure lisibilité.
Avant
Après
Qu'est-ce qu'un formateur SQL ?
Une longue requête SQL tassée sur une seule ligne ne livre rien de sa structure. Cet outil insère des retours à la ligne autour de mots-clés comme SELECT, FROM, WHERE et JOIN, et indente les sous-requêtes imbriquées, si bien que la forme de la requête devient suivable à l'œil. La mise en forme ne change jamais le sens.
Le dialecte choisi influe sur le résultat. MySQL, PostgreSQL, Oracle et SQL Server ont chacun leur syntaxe propre : retenez donc celui qui correspond à votre base. Notez aussi qu'un SQL comportant une erreur de syntaxe ne peut être analysé correctement et peut revenir non formaté — vérifiez alors d'abord la validité du SQL lui-même.
Étapes pour mettre en forme du SQL
- Coller votre SQL Collez dans le champ le SQL à mettre en forme. Séparez les requêtes par des points-virgules et plusieurs pourront être traitées ensemble.
- Choisir le dialecte Sélectionnez celui qui correspond à votre base. En cas de doute, le SQL standard met tout de même en forme la grande majorité des syntaxes.
- Régler l'indentation et la casse des mots-clés Ajustez la largeur d'indentation à la convention de votre équipe. Activer la mise en majuscules aligne les mots-clés et rend la requête plus lisible.
- Mettre en forme et vérifier le résultat Appuyez sur « Mettre en forme » : le résultat s'affiche, prêt à être collé directement dans une revue de code ou une spécification.
Astuces pour en tirer le meilleur parti
- Les mots-clés SQL comme SELECT, FROM, WHERE et JOIN sont automatiquement mis à la ligne et alignés, et les sous-requêtes imbriquées sont correctement indentées.
- Activer « Mettre les mots-clés en majuscules » convertit automatiquement tous les mots-clés en majuscules, améliorant la lisibilité.
- Ajustez la taille de l'indentation pour correspondre aux conventions de style de votre équipe.
- Coller le SQL formaté dans des revues de code ou de la documentation le rend beaucoup plus facile à lire.
- Prend en charge les principaux dialectes SQL, notamment MySQL, PostgreSQL et Oracle.
Quand un formateur SQL est utile
Déchiffrer un SQL qu'on vous a transmis
Mettez en forme une requête d'une seule ligne extraite d'un journal ou du code d'une application : la structure des conditions de jointure et de filtrage devient claire d'un coup d'œil.
Faire le ménage avant une revue de code
Soumettez-le avec l'indentation déjà alignée et la personne qui relit peut se concentrer sur la logique plutôt que sur la présentation. Le diff se lit aussi plus facilement.
Intégrer du SQL à une spécification
Collez du SQL mis en forme dans un document et vos lecteurs pourront suivre la structure. Combiné aux majuscules, il se lit bien même à l'impression.
Analyser la forme d'une requête lente
Comme vous voyez la profondeur des sous-requêtes et le nombre de jointures, vous pouvez formuler une hypothèse avant même de lire le plan d'exécution.
Les termes du SQL expliqués
- Dialecte SQL
- Les différences de syntaxe entre produits de base de données. Chaque produit ajoute ses propres extensions au SQL standard : d'où l'importance du choix lors de la mise en forme.
- Sous-requête
- Une requête écrite imbriquée dans une autre instruction SQL. Plus elle s'enfonce, plus elle est difficile à lire — c'est là que l'indentation rapporte le plus.
- JOIN
- La syntaxe qui récupère des données en reliant plusieurs tables. Les conditions de jointure s'allongent vite : l'endroit des retours à la ligne gouverne donc la lisibilité.
- Requête préparée
- Une approche qui construit la requête en y insérant les valeurs ensuite. C'est le fondement de toute défense contre l'injection SQL.
- Injection SQL
- Une attaque qui mêle des fragments de SQL aux valeurs saisies pour faire exécuter une requête non voulue. Construire du SQL par concaténation de chaînes y invite.
- Procédure stockée
- Une suite de traitements conservée du côté de la base. Comportant une syntaxe de contrôle, elle peut sortir du champ couvert par la mise en forme.
Foire aux questions
Anecdote — 50 ans de SQL : histoire des bases de données relationnelles
SQL est né lorsque IBM a développé « SEQUEL » sur la base du modèle relationnel proposé par E.F. Codd (IBM) dans un article de 1970 (renommé SQL pour des raisons de marque déposée). Il a été standardisé par l'ANSI en 1986 et est utilisé dans d'innombrables bases de données depuis lors.
L'un des incidents de sécurité les plus célèbres est l'attaque par injection SQL. La violation de Sony PSN (PlayStation Network) en 2011 a exposé plus de 100 millions de données personnelles, avec des dommages estimés à 171 millions de dollars. Elle figure encore régulièrement dans l'OWASP Top 10, et l'utilisation de requêtes préparées est la contre-mesure fondamentale.
« WHERE 1=1 » est une technique pratique pour construire du SQL dynamique, mais c'est aussi un exemple classique d'injection SQL. La possibilité de se connecter sans mot de passe en entrant ' OR '1'='1 dans un formulaire de connexion est encore utilisée comme exemple canonique dans les formations à la sécurité.