Formatez, vérifiez et comprenez n'importe quelle requête SQL.
Dix-neuf dialectes, un linter qui nomme la ligne et la colonne, la coloration syntaxique et le détail de chaque instruction — le tout dans cet onglet, sans rien envoyer nulle part.
Rien ne se lance tout seul. Appuyez sur Formater quand votre requête est prête.
Rien n'est chargé pour l'instant.
Le détail apparaît dès qu'il y a une instruction.
Dix-neuf dialectes, pas un seul
PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, BigQuery, Snowflake, Redshift, DuckDB, Oracle et d'autres, chacun avec ses mots réservés, ses guillemets et ses paramètres. Collez une requête : le dialecte est deviné pour vous.
Des problèmes avec un numéro de ligne
Guillemets et parenthèses non fermés, un DELETE sans WHERE, un LIMIT sans ORDER BY. Chaque signalement donne la ligne et la colonne, et un clic y place votre curseur.
Hors du fil principal
Le formatage tourne dans un Web Worker : un dump de 5 Mo ne fige pas la page pendant le traitement. Le temps affiché à côté du résultat est le vrai.
Rien ne quitte l'onglet
Pas d'envoi, pas de compte, pas d'aller-retour serveur. Une requête de production transporte des noms de tables, des identifiants et de la logique métier : rien de tout cela ne part ailleurs.
Comment ça marche
Amenez la requête
Collez-la, déposez un .sql, chargez un exemple ou laissez un autre outil vous la passer. Un fichier déposé attend : rien n'est chargé ni formaté avant votre feu vert.
Fixez les règles
Dialecte, casse des mots-clés, largeur d'indentation, place de AND et OR, longueur maximale d'une expression avant retour à la ligne. Chaque option change le résultat du prochain formatage.
Appuyez sur Formater
Le moteur réécrit la requête, le panneau de revue liste ce qui mérite un coup d'œil et le résumé montre les instructions, les tables, les jointures et les CTE en jeu.
Emportez-la
Copiez-la, téléchargez le .sql ou envoyez-la directement à un autre outil de la suite : comparer deux versions, en faire une image, calculer son hash.
Formater ne fait que la moitié du travail
La plupart des embellisseurs SQL en ligne ne font qu'une chose : ajouter des sauts de ligne. Cela suffit jusqu'au jour où la requête n'est pas seulement laide mais fausse : une apostrophe restée ouverte au milieu, une parenthèse qui ne se referme pas, un WHERE perdu lors d'un copier-coller. SQLFlow lit la requête sous forme de jetons avant d'y toucher : il peut donc vous donner la ligne et la colonne où le problème commence au lieu de produire silencieusement une sortie abîmée.
Ce passage par les jetons protège aussi vos données. Un formateur naïf applique une expression régulière à tout le texte : les espaces à l'intérieur de 'bonjour monde' sont alors écrasés et une virgule dans un commentaire ouvre une nouvelle ligne. Ici, une chaîne et un commentaire sont des unités intouchables : ce que vous avez écrit dedans ressort octet pour octet, quel que soit le dialecte choisi.
Et comme ce même passage construit le résumé, vous repartez avec plus qu'un texte présentable : les instructions du fichier, les tables touchées par chacune, les CTE, les jointures et les paramètres en attente de valeur. C'est la différence entre une requête qui a l'air propre et une requête que vous comprenez avant de la lancer sur la production.
Questions fréquentes
Ma requête est-elle envoyée à un serveur ?
Non. Le formateur et tout ce qui l'entoure tournent dans votre navigateur. Il n'y a ni envoi ni appel d'API : la requête ne quitte jamais votre appareil.
Quels dialectes SQL sont pris en charge ?
Dix-neuf : SQL standard, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Redshift, DuckDB, ClickHouse, Spark, Hive, Trino, Db2, SingleStore, TiDB et N1QL. Chacun apporte ses mots réservés, ses règles de guillemets et sa syntaxe de paramètres, et le dialecte est deviné à partir de la requête quand c'est possible.
Est-ce que cela change ce que fait ma requête ?
Non. Le formatage ne touche qu'aux espaces et à la casse des mots-clés. Les chaînes, les commentaires et les noms entre guillemets ressortent exactement comme vous les avez écrits, espaces intérieurs compris.
Que vérifie le panneau de revue ?
Guillemets, commentaires et parenthèses non fermés ; instructions ne commençant pas par un mot-clé SQL ; DELETE et UPDATE sans WHERE ; DROP et TRUNCATE ; SELECT * ; tables jointes par virgule sans condition ; LIMIT sans ORDER BY ; INSERT sans liste de colonnes ; et le point-virgule final manquant. Chaque signalement donne la ligne et la colonne.
Pourquoi rien ne se passe quand je colle une requête ?
C'est voulu : le formateur ne se lance que lorsque vous appuyez sur Formater, ou sur Ctrl+Entrée. Si vous préférez qu'il tourne pendant la saisie, activez « Formater pendant la saisie » dans Plus d'options.
Puis-je formater plusieurs instructions à la fois ?
Oui. Les instructions séparées par des points-virgules sont formatées ensemble, et le résumé liste chacune d'elles avec les tables concernées pour y sauter directement.