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

  1. 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.
  2. 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.
  3. 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.
  4. 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

En plus du SQL standard, MySQL, PostgreSQL, Oracle (PL/SQL) et SQL Server (T-SQL) sont pris en charge. Sélectionnez le dialecte correspondant à votre base de données dans le menu pour formater correctement sa syntaxe spécifique.

Si le SQL saisi contient des erreurs de syntaxe, le formateur peut ne pas l'analyser correctement. Vérifiez que votre SQL est valide avec un client de base de données avant de le formater.

Vous pouvez coller plusieurs instructions SQL séparées par des points-virgules et elles seront formatées ensemble. Cependant, les procédures stockées et la syntaxe de blocs PL/SQL peuvent ne pas être entièrement prises en charge.
Tool-kun

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é.