Comment utiliser : Formateur SQL
- Collez une ou plusieurs instructions SQL dans SQL source (ou ouvrez un fichier
.sql). - Sélectionnez votre dialecte. Ce choix compte pour des éléments comme les identifiants entre backticks dans MySQL, les conversions
::dans PostgreSQL ouTOPdans SQL Server. - Choisissez la casse des mots-clés et l'indentation. La requête formatée se met à jour pendant la saisie.
- Copiez le résultat ou téléchargez-le sous forme de
query.sql.
À quoi sert un formateur SQL ?
Le SQL ne tient pas compte des espaces. Les requêtes générées par un ORM, journalisées par une base de données ou écrites à la hâte finissent donc souvent sur une seule ligne interminable. Un formateur SQL analyse l'instruction et la réécrit en plaçant chaque clause principale — SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY — sur une nouvelle ligne, avec les listes de colonnes indentées et les sous-requêtes imbriquées d'un niveau supplémentaire. Il devient ainsi beaucoup plus facile de repérer une condition de jointure manquante, un OR mal placé ou une colonne oubliée dans le GROUP BY.
Exemple
select u.id, count(o.id) as orders from users u left join orders o on o.user_id = u.id where u.active = 1 group by u.id
devient
SELECT
u.id,
count(o.id) AS orders
FROM
users u
LEFT JOIN orders o ON o.user_id = u.id
WHERE
u.active = 1
GROUP BY
u.id
Pourquoi le réglage du dialecte est important
Chaque base de données étend le SQL à sa façon. Choisir le bon dialecte permet au formateur de reconnaître les mots-clés et la syntaxe propres à chaque éditeur, au lieu de les traiter comme des erreurs :
| Dialecte | Exemples reconnus |
|---|---|
| MySQL / MariaDB | Identifiants `backtick`, LIMIT 10, 20, ON DUPLICATE KEY UPDATE |
| PostgreSQL | Conversions ::, paramètres $1, RETURNING, corps de fonctions entre guillemets dollar |
| SQL Server (T-SQL) | Noms entre crochets [bracketed], TOP (10), variables @variables, lots GO |
| BigQuery | Types STRUCT/ARRAY, chemins backtick project.dataset.table, QUALIFY |
| Oracle PL/SQL | Variables de liaison :bind, CONNECT BY, chaînes q'[…]' |
Si une requête échoue avec une erreur d'analyse, la cause la plus fréquente est un dialecte inadapté. Essayez alors la base de données que vous utilisez réellement. Le formateur repose sur la bibliothèque open source sql-formatter et fonctionne entièrement dans votre navigateur : vos requêtes de production contenant des données clients ne quittent jamais votre machine.
Casse des mots-clés : majuscules ou minuscules ?
Les mots-clés en MAJUSCULES sont la convention traditionnelle et font ressortir la structure de la requête par rapport aux noms de tables et de colonnes. Beaucoup d'équipes modernes préfèrent les minuscules, plus faciles à taper et à lire. Choisissez-en une et tenez-vous-y : des linters comme SQLFluff peuvent l'imposer dans votre CI. L'option Fonctions gère séparément les fonctions natives comme count() ou coalesce().
Vous comparez deux versions d'une requête ? Collez-les dans le comparateur de texte. Vous avez exporté des résultats en JSON ? Transformez-les en tableur avec JSON vers CSV.
Aussi recherché comme : mettre en forme sql, embellisseur sql, sql pretty print, formatage requête sql, formateur mysql, formateur postgresql, formateur t-sql, indentation sql.
Outils complémentaires : Formateur SQL
- Formateur JSON — Collez votre code JSON pour le formater, le compresser ou le valider.
- CSV vers JSON — Collez du CSV ou du TSV pour obtenir un tableau JSON d'objets.
- Formateur JavaScript — Rendez lisible du JavaScript, JSON ou JSX avec l'indentation et le style d'accolades de votre choix, ou supprimez espaces et commentaires avec un minifieur vérifié.
- Formateur HTML — Collez du balisage minifié ou désordonné et obtenez un HTML propre, indenté de manière cohérente, y compris les blocs <style> et <script> intégrés.
Questions fréquentes
Le formateur modifie-t-il le fonctionnement de ma requête ?
Pourquoi obtenez-vous une erreur d'analyse ?
{{ var }} peuvent aussi le perturber.Puis-je formater plusieurs instructions à la fois ?
Est-il sûr de coller des requêtes de production ?
WHERE restent donc confidentielles.Les procédures stockées et le DDL sont-ils pris en charge ?
CREATE TABLE, ALTER, INSERT, les CTE (WITH) et les fonctions de fenêtrage sont entièrement prises en charge. Les blocs procéduraux (PL/pgSQL, flux de contrôle T-SQL) sont mis en forme au mieux.