Utilia

Formateur SQL

Mettez en forme vos requêtes SQL pour PostgreSQL, MySQL, SQL Server, Oracle, BigQuery, Snowflake et d'autres dialectes, directement dans le navigateur.

Comment formater une requête SQL

  1. Collez une ou plusieurs requêtes, ou cliquez sur Ouvrir un fichier pour charger un fichier .sql (10 Mo au maximum).
  2. Choisissez le Dialecte de votre base de données, par exemple PostgreSQL, MySQL ou SQL Server (T-SQL).
  3. Indiquez comment écrire les Mots-clés (MAJUSCULES, minuscules ou Tels quels) et l’Indentation.
  4. Cochez Pas d’espaces autour des opérateurs si vous préférez a=b+1 à a = b + 1.
  5. Cliquez sur Formater le SQL, puis copiez ou téléchargez le résultat. Modifier une option remet la requête en forme.

La requête est seulement remise en forme comme du texte. Elle n’est jamais exécutée ni envoyée à une base de données ou à un serveur.

Ce que fait le formateur

L’outil utilise la bibliothèque libre sql-formatter. Il découpe chaque instruction en clauses et place chaque mot-clé de clause (SELECT, FROM, WHERE, GROUP BY, ORDER BY…) sur sa propre ligne, avec le contenu de la clause décalé en dessous. Les colonnes d’un SELECT sont listées une par ligne, les conditions AND et OR commencent une nouvelle ligne, et les sous-requêtes et expressions CASE sont indentées selon leur profondeur. Les expressions courtes entre parenthèses restent sur une ligne. Plusieurs instructions séparées par des points-virgules sont espacées d’une ligne vide.

Seuls les espaces et la casse changent. Les chaînes de caractères, les identifiants entre guillemets et les commentaires sont conservés à l’identique : la requête mise en forme renvoie le même résultat que l’originale.

Pourquoi le dialecte compte

Les bases de données partagent le cœur du langage SQL mais diffèrent dans les détails, et le formateur doit les connaître pour lire la requête correctement :

  • les identifiants s’entourent de "guillemets doubles" en SQL standard et dans PostgreSQL, d’`accents graves` dans MySQL, MariaDB et BigQuery, et de [crochets] dans SQL Server ;
  • certains opérateurs, comme ->> et les conversions :: de PostgreSQL ou l’accès : aux chemins de Snowflake, n’existent que dans certains dialectes ;
  • les paramètres s’écrivent ?, $1, :nom ou @nom selon les bases ;
  • chaque dialecte a ses propres mots réservés et fonctions, auxquels s’applique l’option Mots-clés.

Si vous voyez « Impossible d’analyser la requête », vérifiez d’abord que le dialecte choisi correspond à votre base. Le message indique la ligne et la colonne où l’analyse s’est arrêtée. SQL standard est le choix le plus strict : sélectionnez votre vraie base dès que possible.

Casse des mots-clés et conseils de style

Les mots-clés en majuscules restent la convention la plus répandue, car ils distinguent d’un coup d’œil le langage des noms de tables et de colonnes. Les minuscules plaisent aux équipes qui les trouvent plus lisibles, et Tels quels respecte votre propre choix. Les noms de tables, de colonnes et de fonctions ne sont jamais modifiés : seuls les mots réservés suivent l’option. Sur de longs fichiers, une mise en forme homogène rend aussi les différences entre deux versions bien plus faciles à relire.

Questions fréquentes

Quels dialectes sont pris en charge ?

SQL standard, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle (PL/SQL), Google BigQuery, Snowflake, Amazon Redshift, IBM Db2, Db2 for i, Apache Hive, Spark SQL, Trino/Presto, DuckDB, ClickHouse, SingleStoreDB, TiDB et Couchbase N1QL.

L'outil vérifie-t-il que ma requête est valide ?

Non. Il vérifie que la requête peut être lue dans le dialecte choisi, mais pas que les tables ou les colonnes existent, ni que la requête s’exécuterait. Seule votre base de données peut le confirmer.

Peut-il formater des procédures stockées ?

En partie. Les instructions à l’intérieur des procédures sont mises en forme, mais les blocs procéduraux (BEGIN … END, boucles, DECLARE) sont présentés plus simplement que dans un environnement de développement dédié.

Ma requête est-elle envoyée à un serveur ?

Non. La mise en forme se fait dans votre navigateur : les requêtes qui contiennent des noms de tables ou des données restent sur votre ordinateur.

Pourquoi mon commentaire a-t-il changé de place ?

Les commentaires sont conservés, mais un commentaire placé en fin de ligne peut suivre l’élément qu’il accompagne lorsque celui-ci passe à la ligne.