Formateur SQL
Formatez des requêtes SQL avec chaque clause sur sa propre ligne, des listes de colonnes indentées et des sous-requêtes imbriquées. Les mots-clés dans les littéraux de chaîne sont laissés intacts, ce que les formateurs naïfs font mal.
- Les fichiers ne quittent jamais votre appareil
- Gratuit, sans inscription
- Aucun filigrane
- Fonctionne hors ligne une fois chargé
Comment utiliser Formateur SQL
- 1
Collez votre requête
Une longue ligne, ou quelque chose déjà semi-formaté.
- 2
Définissez vos préférences
Taille d'indentation, et si les mots-clés sont mis en majuscules.
- 3
Copiez le résultat
Prêt à être collé dans votre éditeur ou migration.
L'erreur précise qui fait trébucher les formateurs SQL basés sur des expressions régulières
Un formateur qui met en majuscules des mots-clés en comparant des mots entiers avec une expression régulière n'a aucun moyen de savoir si une occurrence donnée de « order » est le mot-clé SQL `ORDER` (comme dans `ORDER BY`) ou une valeur de chaîne littérale qui contient ce mot — une requête filtrant des lignes `WHERE description = 'the order from stock'` a le mot « order » dans une chaîne entre guillemets, ne fonctionnant pas du tout comme mot-clé. Un formateur naïf met en majuscules chaque mot correspondant sans tenir compte du contexte, corrompant la valeur de chaîne littérale en `'the ORDER FROM stock'` et changeant silencieusement ce que la requête filtre réellement. Tokeniser correctement la requête — reconnaissant les limites des chaînes entre guillemets avant de décider ce qui compte comme mot-clé — est ce qui empêche cela, et c'est précisément le genre d'erreur qui n'apparaît qu'avec de vraies données contenant des mots qui correspondent à des mots-clés SQL, donc facile à manquer en testant avec de simples requêtes d'exemple.
Ce que signifie « formate mais n'analyse pas » en pratique
Cet outil reconnaît la structure de clauses commune partagée entre PostgreSQL, MySQL, SQL Server, SQLite et Oracle — SELECT, FROM, WHERE, JOIN, GROUP BY, ORDER BY et leurs parents — assez bien pour indenter chaque clause sur sa propre ligne et imbriquer correctement les sous-requêtes. Il ne construit pas une compréhension complète de la grammaire entière d'une base de données précise, y compris les extensions spécifiques à un fournisseur comme la syntaxe de tableau de PostgreSQL ou le placement de la clause `TOP` de SQL Server. La conséquence pratique est que la syntaxe spécifique à un dialecte passe à travers le formateur intacte plutôt que de provoquer une erreur, mais elle ne recevra pas non plus la même indentation soignée que les clauses communes — un compromis raisonnable pour prendre en charge cinq dialectes avec un seul formateur plutôt que de nécessiter un outil séparé par moteur de base de données.
Pourquoi formater ne peut pas changer ce que fait une requête
Les mots-clés SQL ne distinguent pas la casse par la spécification même du langage — `SELECT`, `Select` et `select` sont identiques pour tout moteur SQL — ce qui est précisément ce qui rend leur mise en majuscules ou minuscules une opération purement cosmétique sans aucun risque d'altérer le comportement. Il en va de même pour les espaces blancs et sauts de ligne qu'ajoute ce formateur : une requête répartie sur douze lignes indentées s'exécute de façon identique à la même requête entassée sur une seule. Rien dans le formatage ne touche les tokens réels qui déterminent quelles tables sont lues, quelles conditions filtrent les lignes, ou quelles valeurs sont insérées — seulement comment cette même requête logique est visuellement disposée pour un humain qui la lit ensuite.
Lire une longue migration ou une requête générée
Une requête générée par un ORM, exportée depuis une interface graphique de base de données, ou écrite en une seule longue ligne pendant une migration précipitée est souvent fonctionnellement correcte mais réellement difficile à relire pour une personne telle qu'écrite — une requête avec quinze jointures sans sauts de ligne rend difficile de voir quelles conditions appartiennent à quelle jointure, ou si une clause WHERE filtre la bonne table. La reformater avec chaque clause et chaque jointure sur sa propre ligne, indentée pour refléter la structure réelle de la requête, est souvent le moyen le plus rapide de vraiment comprendre ce que fait une longue requête générée avant de l'approuver en revue de code ou de déboguer pourquoi elle renvoie les mauvaises lignes.
Questions fréquentes
Cela va-t-il changer ce que fait ma requête ?
Non. Seuls les espaces blancs et la capitalisation des mots-clés changent — aucune clause n'est réordonnée ni aucun token réécrit. Les mots-clés SQL ne distinguent pas la casse, donc les mettre en majuscules ne peut pas altérer le comportement.
Qu'en est-il du texte entre guillemets ?
Il est laissé exactement tel qu'écrit. Le formateur tokenise la requête avant de toucher quoi que ce soit, donc une chaîne comme 'check the order from stock' conserve son « order » et « from » en minuscules plutôt que d'être mis en majuscules comme des mots-clés. Les formateurs basés sur des expressions régulières se trompent régulièrement là-dessus.
Quels dialectes SQL fonctionnent ?
La structure de clauses commune partagée par PostgreSQL, MySQL, SQL Server, SQLite et Oracle. Il formate plutôt qu'il n'analyse, donc la syntaxe spécifique à un dialecte passe intacte plutôt que de provoquer une erreur — mais elle ne sera pas non plus spécialement indentée.
Mes requêtes sont-elles envoyées quelque part ?
Non. Le formatage se fait dans votre navigateur. Cela compte car les vraies requêtes portent des noms de tables, noms de colonnes et parfois des données littérales de clients — rien de tout cela ne devrait être collé sur le serveur d'un inconnu.
Tâches courantes pour Formateur SQL
Vous pourriez aussi avoir besoin de
Formateur JSON
Formatez, validez et minifiez du JSON instantanément
Formateur JavaScript
Formatez JS et TypeScript avec un vrai analyseur
Formateur XML
Indente du XML et détecte les balises déséquilibrées
Encodeur et décodeur Base64
Encodez et décodez en Base64 et Base64URL
Formateur CSS
Embellissez ou minifiez des feuilles de style
Minifieur CSS
Réduisez vos feuilles de style avec un vrai minifieur conscient du CSS
Générateur de hachage
MD5, SHA-1, SHA-256, SHA-384 et SHA-512
Formateur HTML
Embellissez et indentez du HTML correctement