SuperDevTools

Formater du SQL en ligne

Résultat
Collez du SQL, déposez un fichier .sql ou cliquez sur « Exemple ».
Requêtes
0
Lignes du résultat
0
Taille du résultat
0

Cet outil met en forme le texte : il ne vérifie pas toute la syntaxe et n'exécute rien. Le contenu des chaînes, des identifiants entre guillemets et des commentaires est recopié tel quel.

Tout se passe dans votre navigateur : vos requêtes ne sont envoyées nulle part et ne sont enregistrées nulle part.

Un formateur SQL pour rendre vos requêtes lisibles

Une requête écrite d'une traite sur une seule ligne fonctionne, mais se relit mal : c'est souvent ce que l'on récupère dans un journal d'erreurs ou dans le code d'une application. Formater le SQL, c'est le découper en clauses alignées et indentées pour voir d'un coup d'œil les colonnes lues, les tables jointes et les filtres. Une présentation commune facilite aussi la revue de code : la comparaison entre deux versions ne montre plus que les vraies modifications.

Mode d'emploi

  1. Collez une ou plusieurs requêtes dans « Votre requête SQL », ou ouvrez un fichier .sql. « Exemple » charge une requête avec jointure, sous-requête et CASE.
  2. Choisissez le « Dialecte » : SQL standard, MySQL / MariaDB, PostgreSQL, SQLite ou SQL Server.
  3. Réglez les « Mots-clés » (En MAJUSCULES, En minuscules, Casse inchangée), l'« Indentation », les « Colonnes » (Une par ligne ou Sur une seule ligne) et les « Virgules » (En fin ou En début de ligne).
  4. Cliquez sur « Formater » ou « Minifier », puis sur « Copier » ou « Télécharger (.sql) ».

Exemple et conventions

Prenons select id, nom from clients where ville = 'Lyon' and actif = 1 order by nom;, soit 76 caractères. Avec les réglages par défaut, l'outil produit 10 lignes : SELECT seul, puis id, et nom en retrait de deux espaces, FROM et clients, WHERE suivi de ville = 'Lyon', puis AND actif = 1 sur sa propre ligne, enfin ORDER BY et nom;. Minifiée, la même requête tient en 71 caractères : SELECT id,nom FROM clients WHERE ville='Lyon' AND actif=1 ORDER BY nom;.

Ces choix reprennent les conventions les plus répandues :

  • mots-clés en majuscules, noms de tables et de colonnes laissés tels quels ;
  • une clause principale par ligne : SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, UNION, INSERT INTO, VALUES, UPDATE, SET, DELETE FROM, CREATE TABLE ;
  • chaque JOIN ouvre une ligne avec sa condition ON, et chaque AND ou OR d'un filtre passe à la ligne, sauf celui d'un BETWEEN ;
  • une sous-requête est indentée d'un niveau, et un CASE place chaque WHEN et le ELSE sur leur propre ligne.

Ce que l'outil ne modifie jamais

L'analyseur reconnaît les chaînes entre apostrophes, les identifiants entre guillemets, accents graves ou crochets, les commentaires -- et /* */, les nombres, les opérateurs et les paramètres (?, :nom, $1). Le contenu des chaînes et des commentaires est recopié caractère pour caractère : dans WHERE note = 'select from where', les trois mots restent en minuscules.

Les dialectes diffèrent surtout par la façon de citer les noms : accents graves et commentaires # pour MySQL, crochets comme [Nom client] pour SQL Server, chaînes $$…$$ et opérateur :: pour PostgreSQL.

Si une apostrophe, un commentaire ou une parenthèse reste ouvert, l'outil formate quand même et indique la ligne et la colonne du problème. Ce n'est pas une validation complète : une faute dans un nom de table ou une virgule oubliée passent inaperçues, et rien n'est exécuté sur une base de données.

Questions fréquentes

Le formatage peut-il changer le résultat de ma requête ?

Non. Seuls les blancs et la casse des mots-clés changent, et SQL ignore la casse des mots-clés. Attention à une colonne non protégée qui s'écrit comme un mot-clé (date, text, key) : elle prend la même casse. Entourez-la de guillemets ou choisissez « Casse inchangée ».

Puis-je formater un script de plusieurs milliers de lignes ?

Oui. Les requêtes séparées par « ; » sont traitées l'une après l'autre, séparées par une ligne vide. Le calcul tourne en arrière-plan, sans figer la page : 5 000 lignes prennent moins d'une seconde sur un ordinateur récent. Les fichiers sont acceptés jusqu'à 20 Mo.

Minifier puis reformater redonne-t-il la même présentation ?

Oui, à réglages égaux, car la mise en forme ne dépend que de la suite des éléments. Les commentaires -- sont gardés par la minification, suivis d'un retour à la ligne pour ne pas avaler la fin de la requête.