Formateur SQL — mise en forme, 11 dialectes, minification, coloration
Transformez du SQL désordonné en requêtes lisibles et indentées de façon cohérente pour PostgreSQL, MySQL, T-SQL, BigQuery et plus. Dans votre navigateur.
Fonctionne entièrement dans votre navigateur. Votre SQL n’est jamais envoyé à un serveur : les noms de schéma et les données de vos requêtes restent privés. Parcourir tous les outils gratuits.
Un problème, ou quelque chose à améliorer ? Nous lisons chaque message et corrigeons vite.
Ce formateur SQL gratuit transforme une requête copiée depuis un journal, un ORM ou une migration sur une seule ligne en SQL lisible : une clause par ligne, une indentation cohérente et des mots-clés dans la casse de votre choix. Choisissez le dialecte de votre base de données pour que les syntaxes comme les conversions :: et les corps de fonction $$ de PostgreSQL, les accents graves de MySQL, les [crochets] et @variables de T-SQL ou les clauses QUALIFY de BigQuery et Snowflake soient comprises au lieu d’être déformées.
La mise en forme ne modifie que les espaces et la casse des mots-clés, des types de données et des noms de fonctions. Les chaînes littérales, les identifiants entre guillemets et les commentaires restent exactement tels qu’ils ont été écrits. Le formateur doit analyser votre SQL pour le mettre en page : le SQL à base de templates (blocs {{ }} de dbt ou Jinja) et certaines instructions propres à un éditeur peuvent donc échouer ; dans ce cas, il vous indique la ligne et la colonne où il s’est arrêté. La minification fait l’inverse : une seule ligne, commentaires supprimés, hints de l’optimiseur comme /*+ INDEX(...) */ conservés.
Mode d’emploi
- Collez une ou plusieurs instructions SQL dans la zone. Une requête d’exemple est chargée pour que vous voyiez d’abord le résultat.
- Choisissez le dialecte de votre base de données. C’est surtout important pour les guillemets, les paramètres et la syntaxe propre à chaque éditeur.
- Réglez la casse des mots-clés, l’indentation et le nombre de lignes vides entre les instructions. Le résultat se met à jour à chaque modification.
- Passez en mode Minifier si vous avez besoin de la requête sur une seule ligne, par exemple dans une configuration JSON ou une commande shell.
- Copiez le résultat ou téléchargez-le en fichier .sql.
Questions fréquentes
La mise en forme change-t-elle ce que fait ma requête SQL ?
Non. Le formateur ne modifie que les espaces et la casse des mots-clés, types de données et fonctions, que les bases SQL traitent sans tenir compte de la casse. Les valeurs de chaînes, les identifiants entre guillemets ("Column", `col`, [col]) et les commentaires sont recopiés tels quels : la requête renvoie donc les mêmes résultats. Les noms de tables et de colonnes ne changent pas de casse, à une exception près : un nom sans guillemets qui est aussi un mot-clé dans le dialecte choisi (par exemple un alias appelé month) suit la casse des mots-clés. Les noms sans guillemets sont insensibles à la casse dans la plupart des bases, donc c’est rarement gênant, mais les noms de tables MySQL peuvent être sensibles à la casse sous Linux ; choisissez Conserver pour laisser votre texte exactement tel qu’il a été écrit.
Quel dialecte SQL choisir ?
Celui de votre base de données. Le SQL standard fonctionne pour des instructions SELECT, INSERT et UPDATE simples, mais il ne connaît pas les conversions :: et les paramètres $1 de PostgreSQL, les identifiants entre accents graves et les commentaires # de MySQL, les crochets, @variables et TOP de T-SQL, les blocs PL/SQL d’Oracle, ni la clause QUALIFY de BigQuery et Snowflake. Si la mise en forme échoue avec une erreur d’analyse, choisir le bon dialecte est la première chose à essayer.
Pourquoi le formateur affiche-t-il « Erreur d’analyse » ?
Il a rencontré un token inattendu pour le dialecte choisi. Les causes courantes sont un mauvais dialecte, une parenthèse ou un guillemet non fermé, des balises de template comme {{ ref("orders") }} de dbt, ou du code procédural que l’analyseur ne couvre pas. La ligne d’état indique la ligne et la colonne, et la zone en dessous pointe vers le caractère, ce qui suffit généralement pour trouver le problème.
Les mots-clés SQL doivent-ils être en majuscules ?
C’est une convention, pas une règle. Les mots-clés en majuscules (SELECT, FROM, WHERE) font ressortir la structure par rapport aux noms de tables et de colonnes, et c’est le style le plus courant dans la documentation et les guides de style. Beaucoup d’équipes qui utilisent dbt ou des éditeurs modernes avec coloration syntaxique préfèrent les minuscules. Choisissez-en un et appliquez-le partout ; cet outil peut convertir dans les deux sens, ou conserver ce que vous avez écrit.
Peut-on minifier du SQL sans risque ?
Oui pour la requête elle-même : la minification réduit les espaces et supprime les commentaires -- et /* */, sans jamais toucher à l’intérieur des chaînes. Les hints de l’optimiseur (/*+ ... */) et les commentaires de version MySQL (/*! ... */) sont conservés, car ils modifient le comportement. Le prix à payer est la lisibilité : ne minifiez que pour le transport (une configuration JSON, une variable d’environnement, une ligne de journal) et gardez la version formatée dans votre dépôt.
Mon SQL est-il envoyé à un serveur ?
Non. La bibliothèque de mise en forme est téléchargée dans votre navigateur et s’y exécute. Les noms de tables, de colonnes et les données de vos clauses WHERE ne quittent jamais votre machine.
Les différences de dialecte qui cassent les formateurs
• Guillemets d’identifiants : le SQL standard et PostgreSQL utilisent les "guillemets doubles", MySQL et MariaDB les `accents graves`, SQL Server les [crochets]. Un formateur réglé sur le mauvais dialecte peut lire un nom entre guillemets comme une chaîne ou un opérateur.
• Paramètres : PostgreSQL utilise $1, $2 ; MySQL et SQLite utilisent ? ; SQL Server utilise @name ; Oracle utilise :name. Ils sont conservés exactement tels qu’ils ont été écrits.
• Conversions et opérateurs : PostgreSQL a value::type, les opérateurs JSON -> et ->>, et ILIKE. BigQuery et Snowflake ont QUALIFY pour filtrer les fonctions de fenêtrage. Spark et Hive ont LATERAL VIEW.
• Chaînes et corps : les corps de fonction PostgreSQL sont souvent entourés de $$ ... $$ (dollar quoting) et les chaînes avec échappements utilisent E'...'. Tout ce qui se trouve à l’intérieur est traité comme une seule chaîne et laissé intact.
• Commentaires : -- et /* */ fonctionnent partout ; # ne commence un commentaire qu’en MySQL et MariaDB. En T-SQL, #name désigne une table temporaire.
Un style SQL lisible en cinq règles
Les guides de style SQL publiés divergent sur des détails comme les virgules en début ou en fin de ligne, mais la plupart s’accordent sur quelques règles de mise en page, que ce formateur applique par défaut :
• Une clause principale par ligne : SELECT, FROM, JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT.
• Une colonne sélectionnée par ligne, pour que les diffs montrent exactement quelle colonne a changé.
• Les conditions après AND ou OR sur leur propre ligne dans WHERE et ON.
• Les sous-requêtes et corps de CTE indentés d’un niveau de plus que leur parent.
• Une ligne vide entre les instructions d’un script, pour que chacune se lise comme un tout.
Ce qu’un formateur ne peut pas faire, c’est bien nommer les choses. Utilisez des alias de table qui ont du sens (orders o convient, t1 non) et donnez aux colonnes calculées un nom explicite avec AS.
Outils gratuits similaires
- Formateur JSON — Indentez, minifiez et validez du JSON, avec les erreurs d’analyse localisées par ligne et colonne. Dans votre navigateur, sans envoi.
- JSON en TypeScript — Collez un exemple JSON et obtenez des interfaces TypeScript, un schéma Zod, un JSON Schema ou des types pour Go, Python, Java, C#, Kotlin, Swift et Rust.
- Validateur YAML — Validez du YAML avec la ligne et la colonne exactes de chaque erreur, et repérez les fautes que les parseurs acceptent sans rien dire : booléens yes/no, tabulations, clés en double.
- Testeur de regex — Testez une expression régulière sur un texte d’exemple avec surlignage des correspondances en direct, groupes de capture et aperçu du remplacement. Gratuit, dans votre navigateur.
- Comparateur de texte — Comparez deux versions d’un texte, d’un code ou d’un fichier JSON et voyez exactement quelles lignes, quels mots et quels caractères ont changé.