Aller au contenu

Formateur et minificateur SQL

Rendez lisible une requête SQL sur une ligne : clauses à la ligne, colonnes et conditions indentées, mots-clés en majuscules. Ou minifiez-la. Rien n'est envoyé.

  • Gratuit
  • Sans inscription
  • Aucun fichier envoyé
  • Windows, Mac, Android, iPhone

Chargement de l'outil…

À propos de cet outil

Collez une requête SQL illisible, générée par un ORM ou copiée d'un journal : elle est reformatée avec une clause par ligne, les colonnes et conditions indentées et les sous-requêtes décalées. L'outil fonctionne avec MySQL, PostgreSQL, SQLite et SQL Server, et ne touche ni aux chaînes ni aux commentaires.

Dans quels cas l'utiliser ?

Lire une requête générée

Les ORM (Prisma, Hibernate, Doctrine, Eloquent) et les journaux de requêtes lentes produisent des requêtes sur une seule ligne. Formatées, leurs jointures et conditions deviennent lisibles, ce qui aide à comprendre un problème de performance.

Préparer une revue de code

Une requête bien indentée dans une migration ou un rapport se relit et se commente plus facilement. Les mots-clés en majuscules séparent visuellement la structure des noms de tables et de colonnes.

Raccourcir une requête

Le mode minifié retire commentaires et espaces superflus pour placer une requête dans une chaîne de code, une variable d'environnement ou un outil qui n'accepte qu'une ligne.

Mode d'emploi

  1. Collez la requête SQL.
  2. Choisissez de la formater ou de la minifier.
  3. Copiez ou téléchargez le résultat.

Comment ça marche

La requête est découpée en éléments : mots, nombres, chaînes entre apostrophes, identifiants entre guillemets, crochets ou accents graves, commentaires et symboles. Les chaînes et commentaires sont recopiés tels quels, ce qui garantit que le sens de la requête ne change pas.

Les clauses principales (SELECT, FROM, WHERE, JOIN, GROUP BY, ORDER BY…) commencent une nouvelle ligne ; les colonnes d'un SELECT, les conditions AND et OR et les ON des jointures sont indentés. Une parenthèse qui ouvre une sous-requête augmente le niveau d'indentation, alors que les appels de fonction comme COUNT(*) restent sur la ligne.

Conseils pour un bon résultat

  • Gardez la même convention de casse dans tout un projet : mots-clés en majuscules et noms en minuscules est la plus répandue.
  • Une requête formatée révèle vite un produit cartésien : une jointure sans ON saute aux yeux.
  • Avant de coller une requête de production, retirez les valeurs sensibles (e-mails, jetons) des conditions.
  • Pour comprendre une requête lente, formatez-la puis passez-la à EXPLAIN dans votre base.
  • Dans le code, préférez des requêtes paramétrées plutôt que de concaténer des valeurs : c'est la protection contre l'injection SQL.

Problèmes fréquents et solutions

Une partie de la requête reste sur une ligne

Les procédures stockées ou syntaxes très spécifiques à un dialecte ne sont pas toutes reconnues. La requête reste correcte : seules les coupures de ligne manquent.

Un nom de colonne est passé en majuscules

Certains noms coïncident avec un mot-clé (date, key, text). Décochez l'option des majuscules ou entourez le nom de guillemets dans la requête.

Ma chaîne contient des espaces modifiés

Ce n'est pas possible : les chaînes entre apostrophes sont recopiées à l'identique. Vérifiez qu'une apostrophe n'est pas mal fermée dans la requête d'origine.

Questions fréquentes

Quels dialectes SQL sont pris en charge ?

La syntaxe commune de MySQL, MariaDB, PostgreSQL, SQLite, SQL Server et Oracle. Les identifiants entre accents graves, crochets ou guillemets sont reconnus.

La requête est-elle exécutée ?

Non. Elle est seulement mise en forme dans votre navigateur ; aucune base n'est contactée et rien n'est envoyé.

Le formatage peut-il casser ma requête ?

Non : seuls les espaces, retours à la ligne et la casse des mots-clés changent. SQL ne tient pas compte de ces différences.

Puis-je formater plusieurs requêtes à la fois ?

Oui, séparez-les par des points-virgules : chacune repart au début de la ligne.

Recherches associées

Toujours bloqué ?

Posez votre question sur le forum : la catégorie, l'outil, la fiche de votre appareil et le résultat du test seront déjà remplis.