Formatez vos requĂȘtes SQL pour les rendre plus lisibles.
Les résultats sont fournis à titre informatif. Vérifiez-les auprÚs d'autres sources.
Ce formateur compare des mots-clés, il cassera donc une chaßne contenant le mot FROM
Il dĂ©coupe votre requĂȘte aux espaces et Ă la ponctuation et insĂšre un saut de ligne devant chacun de vingt-trois mots-clĂ©s. Il ignore totalement ce qu'est une chaĂźne littĂ©rale. Formatez SELECT name FROM t WHERE label = 'order from stock' et le littĂ©ral revient en 'order\nfrom stock' : un saut de ligne entre les guillemets, et une requĂȘte qui ne filtre plus la mĂȘme chose.
Comment ça marche
- RĂ©duit toutes les suites d'espaces, puis dĂ©coupe la requĂȘte en jetons aux espaces, parenthĂšses, virgules et points-virgules.
- Commence une nouvelle ligne devant chacun des vingt-trois mots-clés de clause, sans tenir compte de la casse.
- Suit l'imbrication par les parenthĂšses ouvrantes et fermantes et indente de deux espaces par niveau.
pour chaque jeton :
si le jeton est ')' â indentation = max(0 ; indentation â 1)
si le jeton est un mot-clĂ© de clause â Ă©mettre un saut de ligne + deux espaces Ă indentation
émettre le jeton inchangé
si le jeton est '(' â indentation = indentation + 1Exemple chiffrĂ©
Une requĂȘte dont le texte contient un mot-clĂ© entre guillemets.
- entrée : SELECT name FROM t WHERE label = 'order from stock'
- SELECT, FROM et WHERE ouvrent chacun une nouvelle ligne, comme prévu
- le mot from entre guillemets est également reconnu, car les guillemets sont invisibles pour la comparaison
- la sortie place un saut de ligne entre 'order et from stock'
- le littĂ©ral n'est plus la mĂȘme chaĂźne qu'auparavant
Trois sauts de ligne voulus et un qui change le sens de la requĂȘte. Tout ce qui est hors des chaĂźnes se formate correctement ; tout ce qui est dedans est menacĂ©.
Lire le résultat
- VĂ©rifiez toute requĂȘte contenant du texte entre guillemets avant d'utiliser le rĂ©sultat. Les commentaires prĂ©sentent le mĂȘme risque : un mot-clĂ© dans un commentaire reçoit aussi un saut de ligne, et dans un commentaire d'une seule ligne ce saut peut renvoyer la suite du commentaire sur une ligne de SQL active.
- L'indentation ne suit que les parenthĂšses : elle reflĂšte la profondeur d'imbrication et non la structure des clauses. Une longue requĂȘte plate sans parenthĂšses ressort sans aucune indentation quel que soit son nombre de clauses, ce qui est correct pour cette rĂšgle et souvent pas ce que vous vouliez.
- La liste de mots-clĂ©s est fixe et gĂ©nĂ©raliste. La syntaxe propre Ă un dialecte â fonctions de fenĂȘtrage, expressions de table communes, extensions d'Ă©diteur, MERGE â n'y figure pas et restera sur la ligne au lieu d'obtenir la sienne.
- Seuls des espaces sont ajoutés. Les jetons sont restitués exactement tels que vous les avez saisis : votre casse est préservée et aucun mot-clé n'est réécrit ; l'outil change la mise en page, pas le texte.
Questions fréquentes
- Peut-on l'utiliser sans risque sur des requĂȘtes de production ?
- Formatez d'abord, puis lisez la sortie avant de vous en servir. L'outil ne réécrit jamais vos jetons, mais il peut insérer un saut de ligne dans une chaßne entre guillemets ou un commentaire, et dans les deux cas le SQL obtenu signifie autre chose que ce que vous avez collé.
- Pourquoi ma sous-requĂȘte n'est-elle pas indentĂ©e ?
- L'indentation dĂ©pend uniquement des parenthĂšses. Une sous-requĂȘte entre parenthĂšses s'indente ; une suite de jointures et de clauses sans parenthĂšses non, car l'outil n'a aucun modĂšle de la structure des clauses sur lequel s'appuyer.