Aller au contenu
TextArray
Tout en local

Minificateur SQL

Compressez un script SQL en supprimant les commentaires et les espaces supplémentaires.

Entrée
Sortie

Minificateur SQL

Collez un script SQL et cet outil supprime les commentaires et réduit chaque exécution d'espaces, renvoyant la version la plus compacte encore en cours d'exécution. Travaux typiques : intégrer une requête sous forme de chaîne d'une ligne dans le code d'une application, comparer une instruction écrite à la main avec ce qu'un ORM ou un journal de requêtes lentes a réellement produit, réduire un long script de migration avant de le stocker, ou insérer une requête dans un paramètre d'URL ou un champ JSON.

Un petit tokenizer parcourt le script caractère par caractère au lieu d'appliquer une recherche et un remplacement aveugles, de sorte que les littéraux de chaîne et les identifiants entre guillemets ne sont jamais modifiés. Les chaînes entre guillemets simples avec des échappements '' doublés, des identifiants entre guillemets doubles et des noms de guillemets MySQL passent octet par octet, même lorsqu'elles contiennent des séquences -- ou /* qui ne ressemblent qu'à des commentaires. La suppression des commentaires couvre les commentaires de ligne et les blocs /* */ et peut être désactivée. Un espacement serré supprime également les espaces après une parenthèse ouvrante, avant une parenthèse fermante et autour des virgules. L'option de mise en page place l'intégralité du script sur une seule ligne ou commence une nouvelle ligne après chaque point-virgule de niveau supérieur.

Deux limites honnêtes. C'est l'opposé d'un formateur : il ne modifie pas la casse des mots clés, ne réindente ni n'embellit quoi que ce soit : exécutez le résultat via un formateur lorsque vous avez besoin d'un retour SQL lisible. Et # les commentaires sont délibérément laissés intacts, car les supprimer détruirait les noms de tables #temp dans les scripts T-SQL.

La minification s'exécute entièrement dans votre navigateur. Les requêtes ont tendance à exposer les noms de tables, les détails du schéma et la logique métier, et rien de tout cela ne quitte votre appareil : rien n'est téléchargé, enregistré ou stocké nulle part. Le décompte sous la sortie indique les octets entrants et sortants, le pourcentage enregistré et le nombre d'instructions.

FAQ

La minification peut-elle interrompre ma requête ?
Les littéraux de chaîne et les identifiants entre guillemets sont copiés octet par octet, les commentaires sont supprimés entièrement et les espaces se réduisent uniquement entre les jetons, de sorte que le script minifié reste équivalent à l'original. Une mise en garde : certaines bases de données lisent les directives des commentaires, telles que les astuces de l'optimiseur Oracle – désactivez la suppression des commentaires lorsque la vôtre le fait.
Pourquoi # commentaires ne sont-ils pas supprimés ?
Parce que # commence un commentaire uniquement dans MySQL. Dans T-SQL, # et ## préfixent les noms de tables temporaires, et les supprimer corromptrait ces scripts, donc l'outil laisse délibérément # tranquille. Réécrivez les # commentaires MySQL en tant que -- commentaires si vous avez besoin de les supprimer.
Quels dialectes SQL prend-il en charge ?
Le tokenizer comprend les guillemets partagés par les principaux dialectes : chaînes entre guillemets simples avec des échappements '', identifiants entre guillemets doubles et backticks MySQL. Il n'analyse jamais la grammaire, donc les scripts PostgreSQL, MySQL, SQLite, SQL Server et Oracle fonctionnent tous de la même manière.
Peut-il également formater ou embellir SQL ?
Non. La réduction est dans le sens opposé : elle supprime la structure au lieu de l'ajouter. La casse des mots clés reste telle qu'elle est écrite et rien n'est réindenté - utilisez un formateur SQL lorsque vous avez besoin d'une mise en page lisible.
Mon SQL est-il téléchargé quelque part ?
Non. Tout s'exécute localement dans votre navigateur. Les requêtes révèlent souvent un schéma et une logique métier, c'est exactement pourquoi l'outil n'envoie jamais votre entrée à aucun serveur.