Du SQL lisible, dans le dialecte que vous utilisez
Ce formateur SQL accepte une requête de n'importe quelle longueur, même plusieurs instructions à la fois, et l'indente de façon cohérente : une clause par ligne, colonnes et conditions alignées, mots-clés dans la casse de votre choix. Il comprend la syntaxe de plus de quinze dialectes, de PostgreSQL, MySQL et SQL Server à BigQuery, Snowflake et Oracle PL/SQL, de sorte que les opérateurs, guillemets et placeholders propres à chaque dialecte restent intacts. Passez en mode Minifier pour remettre une requête sur une seule ligne, pour un fichier de configuration ou une chaîne dans votre code. Tout s'exécute dans votre navigateur ; vos requêtes ne sont jamais envoyées.
Comment formater une requête SQL
- 1Collez votre SQL dans le volet de gauche, ou partez de la requête d'exemple.
- 2Choisissez le dialecte de la requête. Standard SQL convient à la plupart des requêtes simples ; le bon dialecte compte pour des éléments comme les casts
::de PostgreSQL, les identifiants entre backticks de MySQL ou les[brackets]de SQL Server. - 3Réglez la casse des mots-clés et l'indentation, puis ouvrez Plus d'options pour la casse des types de données et des fonctions, l'indentation tabulaire, la position de
AND/ORet les lignes vides entre instructions. - 4La requête formatée s'affiche à droite pendant que vous tapez. Si elle ne peut pas être analysée, la ligne et la colonne du problème sont indiquées.
- 5Copiez le résultat, téléchargez-le en fichier
.sql, ou choisissez Minifier pour le réduire à une ligne.
Pourquoi formater du SQL ?
Le SQL s'écrit une fois et se lit de nombreuses fois : en revue de code, dans un journal de requêtes lentes, dans une migration que quelqu'un doit déboguer à 2 h du matin. Une requête générée par un ORM ou copiée d'un journal arrive généralement sur une seule ligne interminable. Mettre chaque clause sur sa propre ligne et indenter les sous-requêtes rend la structure visible : quelles tables sont jointes, sur quoi, et quelles conditions s'appliquent où.
Un formatage cohérent réduit aussi la taille des diffs. Quand toute l'équipe formate les requêtes de la même manière, une condition modifiée apparaît comme une seule ligne changée au lieu d'un paragraphe réorganisé.
Les options de formatage expliquées
- Casse des mots-clés
- UPPER fait ressortir SELECT, FROM et WHERE par rapport aux noms de tables et de colonnes, la convention la plus courante. lower convient aux équipes qui trouvent les majuscules trop chargées. Conserver laisse les mots-clés tels que vous les avez tapés.
- Indentation
- Deux ou quatre espaces, ou des tabulations. Les styles tabulaires alignent plutôt les mots-clés dans une colonne de largeur fixe pour que les expressions qui suivent soient alignées.
- Position de AND / OR
- En début place chaque opérateur logique au début de la ligne, ce qui permet de commenter facilement une condition ; en fin le laisse au bout de la ligne précédente.
- Largeur d'expression
- Les expressions entre parenthèses plus courtes que ce nombre de caractères restent sur une ligne ; les plus longues sont découpées.
- Opérateurs compacts
- Écrit a+b au lieu de a + b. Compact, mais moins lisible.
Choisir le bon dialecte
Les dialectes SQL divergent plus qu'on ne le pense : la façon de citer les identifiants ("name", `name` ou [name]), la forme d'un placeholder (?, $1, :name, @param) et les mots réservés. Le formateur utilise une grammaire distincte pour chaque dialecte, il ne confond donc pas le corps d'une fonction $$ de PostgreSQL ou un commentaire # de MySQL avec autre chose.
Si vous obtenez une erreur d'analyse pour une requête que vous savez valide, vérifiez d'abord le dialecte. Standard SQL est volontairement strict et ne connaît pas toutes les extensions des éditeurs.
Minifier du SQL
Minifier fait l'inverse du formatage : les commentaires sont supprimés et tous les blancs réduits à des espaces simples, ce qui donne une ligne à coller dans un fichier YAML, une variable d'environnement ou une chaîne littérale. Les chaînes littérales, identifiants entre guillemets et corps en dollar-quoting sont copiés à l'identique, donc une valeur comme 'two spaces' garde ses deux espaces. Les hints d'optimiseur écrits /*+ … */ et les commentaires exécutables MySQL /*! … */ sont conservés, car ils changent la façon dont la requête s'exécute.
Vous travaillez plutôt avec du JSON ? Le formateur JSON fait de même pour les documents JSON, et le minificateur de code gère CSS, JavaScript et HTML.
Questions fréquentes
- Mon SQL est-il envoyé à un serveur ?
- Non. Le formatage et la minification s'exécutent entièrement dans votre navigateur : les requêtes contenant des noms de tables, des données clients ou des identifiants ne quittent jamais votre appareil.
- Quels dialectes SQL sont pris en charge ?
- Standard SQL, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Amazon Redshift, Spark SQL, Hive, Trino et Presto, DuckDB, ClickHouse, IBM Db2 et Db2 for IBM i, SingleStoreDB, TiDB et Couchbase N1QL.
- Le formatage modifie-t-il ce que fait ma requête ?
- Non. Seuls les blancs changent et, si vous le choisissez, la casse des mots-clés, types de données et fonctions. Les identifiants entre guillemets et les chaînes littérales ne sont jamais modifiés. Changer la casse des identifiants sans guillemets est sans risque dans la plupart des bases, mais laissez Conserver si votre base y est sensible à la casse.
- Pourquoi ai-je une erreur d'analyse ?
- Soit la requête contient une erreur de syntaxe, comme une parenthèse ou un guillemet non fermé, soit elle utilise une syntaxe absente du dialecte choisi. Le message indique la ligne et la colonne où l'analyse s'est arrêtée ; essayez le dialecte réellement utilisé par votre base.
- Puis-je formater plusieurs instructions à la fois ?
- Oui. Séparez-les par des points-virgules : chacune est formatée tour à tour, avec le nombre de lignes vides entre elles que vous choisissez.
- Les commentaires sont-ils conservés ?
- Lors du formatage, oui : les commentaires de ligne et de bloc restent à leur place. La minification les supprime, sauf les hints d'optimiseur et les commentaires exécutables MySQL.
- Comment minifier une requête SQL sur une ligne ?
- Choisissez Minifier en haut de l'outil. Les commentaires sont supprimés et les blancs réduits, tandis que les chaînes littérales et les identifiants entre guillemets restent exactement tels qu'écrits.