Le formatage se fait à la frappe — il n'y a rien à presser. Votre requête reste dans cette page, l'intérieur des chaînes et des commentaires n'est jamais regardé, et les identifiants gardent exactement la casse que vous avez écrite.
À propos du formatage du SQL
Le SQL arrive sur une seule ligne énorme. Sorti du journal d'un ORM, d'un rapport de bogue, du presse-papiers de quelqu'un. Il tourne parfaitement et il est impossible à lire, et le passage que vous cherchez se trouve quelque part au milieu.
Collez-le et il revient mis en page — une clause par ligne, les colonnes indentées sous SELECT, les jointures et leurs conditions ON alignées, si bien que la forme de la requête se voit d'un coup d'œil.
Comment l'utiliser
- Collez votre SQL dans la zone de gauche — la version formatée et colorée apparaît à droite à mesure que vous tapez
- Ajustez l'indentation, la casse des mots-clés et la position des virgules si vous voulez — le résultat se met à jour aussitôt
- Copiez-le, ou téléchargez-le en fichier .sql
- Passez à Minifier pour le remettre sur une ligne ; ce mode reste actif pendant que vous continuez à taper
Il n'y a pas de bouton à presser pour formater. Les deux seuls boutons qui changent le résultat
sont Formater et Minifier, et ils choisissent lequel des deux vous regardez.
La couleur vient de la même lecture de la requête
La sortie est colorée en repassant le même analyseur lexical qui l'a mise en page sur le
texte fini — mots-clés en cyan, chaînes en jaune, nombres en orange, commentaires en gris,
ponctuation en rose, et vos propres noms de tables et de colonnes laissés en clair pour qu'ils
ressortent du SQL autour.
Cela compte pour plus que l'apparence. Comme une seule lecture de la requête produit à la fois
la mise en page et la couleur, les deux ne peuvent jamais se contredire : ce qui est peint en
chaîne est exactement ce que le formateur a traité comme une chaîne. Si un guillemet n'est pas
refermé quelque part, la couleur déborde et vous montre l'endroit — souvent plus vite que l'œil.
Copier et Télécharger remettent le texte brut, jamais le balisage coloré.
Deux choses sur lesquelles il fait attention
La plupart des formateurs SQL rapides travaillent avec des expressions régulières, et c'est exactement sur ces deux points que cette approche s'effondre.
- L'intérieur des chaînes et des commentaires n'est jamais regardé. Une requête contenant WHERE note = 'from a, b' a un mot-clé, une virgule et une espace à l'intérieur d'une chaîne littérale. Un formateur à base de regex coupe la ligne là et change ce que fait la requête. Celui-ci lit d'abord la requête en jetons, si bien que l'intérieur d'un littéral ressort exactement comme il est entré — jusqu'aux espaces
- Les identifiants gardent la casse que vous avez écrite. Seuls les mots-clés sont mis en majuscules ou en minuscules. Sur un serveur sensible à la casse, userId et userid sont deux colonnes différentes, et un formateur qui les « range » a cassé la requête pour la rendre plus jolie
Tous les styles de guillemets sont compris : 'chaînes' avec échappement '', "identifiants entre guillemets", accents graves MySQL, [crochets] SQL Server, et $$ dollar quoting $$ PostgreSQL.
Les options
- Indenter avec — 4 espaces, 2 espaces ou une tabulation
- Mots-clés — MAJUSCULES, minuscules, ou exactement comme vous les avez écrits
- Virgules — en fin de ligne, ou en début de ligne si c'est la convention de votre équipe
Minifier
Minifier ramène la requête à une seule ligne. Une espace n'est gardée que là où la retirer changerait le sens ou créerait un nouveau jeton, donc le résultat est aussi court qu'il peut l'être sans danger.
Les commentaires de ligne sont supprimés, parce que -- comme ceci avalerait le reste de la ligne une fois tout mis bout à bout. Les commentaires de bloc sont gardés, exactement tels qu'ils sont écrits.
À quoi ça sert
- Rendre lisible une requête issue d'un journal d'ORM
- Nettoyer du SQL avant de le mettre dans une pull request ou une migration
- Comprendre une longue requête écrite par quelqu'un d'autre
- Sortir une requête d'un rapport de bogue sous une forme exploitable
- Faire tenir une requête sur une ligne pour un fichier de configuration ou une commande shell
- Uniformiser le style d'un dossier de fichiers .sql avant de les valider
Bon à savoir
- Votre requête reste dans cette page — rien n'est envoyé nulle part. Pratique quand elle contient de vrais noms de tables et de colonnes
- Ceci met en page du SQL ; cela ne vérifie pas qu'il est valide. Une requête avec une erreur de syntaxe est formatée du mieux possible, pas rejetée
- Les guillemets propres à chaque dialecte sont pris en charge, mais il n'y a pas de réécriture d'un dialecte vers un autre
- Les très grosses requêtes ne posent pas de problème — c'est un travail simple qui se fait sur votre machine
- Fonctionne dans tous les navigateurs, y compris sur téléphone
Outils liés
- Formateur JSON — le même travail pour du JSON
- CSV vers JSON — convertir les données renvoyées par la requête
- Rechercher et remplacer dans plusieurs fichiers — changer un nom de table dans tout un dossier de .sql
- Comparateur de textes — comparer deux versions d'une requête
- Testeur de regex — construire le motif avant de chercher avec