SQL Format
Collez votre SQL dans la zone ci-dessous et utilisez les options disponibles pour le formater. SQL-Format a été créé par des administrateurs de bases de données selon les standards de l’industrie et des grandes entreprises tech. Profitez-en !
Ce qu'est SQL Format et à qui il s'adresse
SQL Format est un formateur en ligne gratuit qui transforme du SQL tassé, écrit sur une seule ligne ou indenté de façon incohérente, en une mise en page propre et prévisible. Chaque clause commence sur sa propre ligne, les listes de colonnes sont découpées à raison d'un élément par ligne, les jointures et leurs conditions sont indentées sous la table à laquelle elles se rapportent, et les requêtes imbriquées sont indentées à l'intérieur de leurs parenthèses.
Il est conçu pour celles et ceux qui lisent du SQL toute la journée : développeurs qui relisent une pull request, DBA qui démêlent une requête lente capturée dans un journal, analystes qui mettent au propre un rapport avant de le partager, et quiconque a hérité d'une instruction de 300 lignes écrite sur une seule ligne. La mise en page suit des conventions utilisées de longue date par les équipes de bases de données, et les options ci-dessous vous permettent de l'adapter au style de votre propre équipe.
Comment utiliser le formateur
- Collez ou saisissez votre SQL dans l'éditeur. Vous pouvez coller plusieurs instructions à la fois ; elles sont séparées au niveau des points-virgules et formatées l'une après l'autre.
- Ajustez les options si nécessaire : taille de l'indentation, largeur maximale de ligne, position des virgules, casse des mots-clés et placement ou non des parenthèses ouvrantes sur leur propre ligne.
- Cliquez sur Formater ou appuyez sur Ctrl + Enter (⌘ + Enter sur Mac). Le SQL formaté remplace le texte de l'éditeur.
- Utilisez Copier pour placer le résultat dans le presse-papiers, ou Effacer pour recommencer. La barre d'état affiche le nombre de lignes et de caractères ainsi que la position de votre curseur.
Les options de mise en forme
Cinq options contrôlent le résultat. Les valeurs par défaut (indentation de 4 espaces, 120 colonnes, virgules en fin, mots-clés en majuscules, parenthèses sur la même ligne) conviennent à la plupart des équipes ; chaque option a sa propre page avec davantage d'exemples.
Espaces d'indentation
Espaces d'indentation définit le nombre d'espaces utilisés par chaque niveau d'imbrication, à partir de 0 ; la valeur par défaut est 4. Les tabulations présentes dans votre saisie sont remplacées par ce même nombre d'espaces, sauf à l'intérieur des littéraux de chaîne et des identifiants entre guillemets. L'exemple ci-dessous utilise 2.
SELECT c.name,
SUM(o.total) AS revenue
FROM customers c
JOIN orders o
ON o.customer_id = c.id
WHERE o.status = 'PAID'
GROUP BY c.nameEn savoir plus : Option Espaces d'indentation
Nombre maximal de colonnes
Nombre maximal de colonnes est la largeur de ligne visée par le formateur (120 par défaut). Les expressions longues sont réparties sur plusieurs lignes pour la respecter ; 0 désactive le retour à la ligne.
SELECT order_id,
quantity * unit_price * (1 - discount_rate) * (1 +
tax_rate) + shipping_fee - loyalty_credit AS
amount_due
FROM order_lines
WHERE order_id = 42En savoir plus : Option Nombre maximal de colonnes
Virgules
Virgules permet de choisir entre les virgules en fin (après chaque élément, par défaut) et les virgules en tête (au début de la ligne suivante). Les virgules en tête facilitent la mise en commentaire d'une colonne et produisent des diffs plus petits lorsque vous en ajoutez une à la fin.
SELECT id
,email
,country_code
,created_at
FROM customersEn savoir plus : Option Virgules
Mots-clés
Mots-clés met les mots-clés SQL tels que SELECT, FROM et JOIN en majuscules (par défaut) ou en minuscules. Les littéraux de chaîne et les commentaires restent tels que vous les avez écrits.
select id,
name
from products
where price > 100
order by nameEn savoir plus : Option Mots-clés
Parenthèses sur une nouvelle ligne
Parenthèses sur une nouvelle ligne place la parenthèse ouvrante d'un bloc, comme une sous-requête après IN, le corps d'une CTE ou une liste répartie sur plusieurs lignes, sur sa propre ligne au lieu de la laisser à la fin de la ligne précédente.
SELECT name
FROM customers
WHERE id IN
(
SELECT customer_id
FROM orders
WHERE total > 500
)En savoir plus : Option Parenthèses sur une nouvelle ligne
Quels dialectes SQL il comprend
Le formateur n'est pas lié à une seule base de données. Il traite le SQL commun aux principaux moteurs : SELECT avec jointures, sous-requêtes et CASE, INSERT, UPDATE, DELETE, le DDL courant comme CREATE TABLE et CREATE VIEW, ainsi que les commentaires sous les formes -- et /* */, qui sont conservés.
Il offre une prise en charge supplémentaire de PostgreSQL : conversions de type ::, paramètres $1 et corps entre dollars $$ … $$, dont le PL/pgSQL est mis en forme bloc par bloc. Les identifiants entre accents graves de MySQL et les identifiants entre crochets [bracket] de SQL Server sont conservés intacts. Il n'y a pas de sélecteur de dialecte : les autres syntaxes propres à une seule base de données, comme le séparateur de lots GO de SQL Server, ne font l'objet d'aucun traitement particulier. Les guides des dialectes expliquent les différences.
- Mettre en forme les requêtes PostgreSQL et le PL/pgSQL
- Différences entre dialectes SQL qui influencent la mise en forme
Ce que devient votre SQL
Lorsque vous cliquez sur Formater, le SQL de l'éditeur est envoyé à notre serveur via HTTPS, formaté en mémoire et renvoyé immédiatement dans la page. Il n'est enregistré ni dans une base de données, ni dans un fichier, ni dans un journal, et il n'est pas partagé avec des partenaires de mesure d'audience ou de publicité. Évitez néanmoins de coller de vrais mots de passe, clés ou données personnelles dans un outil en ligne, quel qu'il soit ; la page de confidentialité donne tous les détails.
Informations de confidentialité
Questions fréquentes
Mon SQL est-il stocké quelque part ?
Non. Le SQL est formaté en mémoire sur le serveur pour cette seule demande et renvoyé dans la réponse. Il n'est enregistré ni dans une base de données, ni dans un fichier, ni dans un journal.
Le formatage peut-il modifier ce que fait ma requête ?
Il est conçu pour ne modifier que les espaces, les sauts de ligne et la casse des mots-clés, jamais l'ordre ni la logique de votre SQL. Comme avec tout outil qui réécrit du code, relisez le résultat avant de l'exécuter sur une base de données de production. Notez que la casse des mots-clés s'applique aussi aux noms qui sont des mots-clés SQL, comme une colonne nommée month.
Avec quelles bases de données fonctionne-t-il ?
Il formate le SQL commun à PostgreSQL, MySQL, SQL Server, Oracle, Db2 et SQLite, avec une prise en charge supplémentaire des conversions de type, des paramètres et des corps PL/pgSQL de PostgreSQL. Il n'y a pas de sélecteur de dialecte.
Y a-t-il une limite de taille ?
Oui. Une seule demande peut contenir jusqu'à 20 000 lignes de SQL.
Puis-je formater plusieurs instructions à la fois ?
Oui. Séparez-les par des points-virgules ; chaque instruction est formatée séparément et elles conservent leur ordre d'origine.
Est-ce payant ou faut-il un compte ?
Non. Le formateur est gratuit et ne nécessite aucune inscription.
Voir toutes les questions fréquentes
Guides et références
Au-delà de l'outil, ces guides présentent les conventions qui rendent le SQL lisible :
- Guide de style SQL
- Comment mettre en forme des requêtes SQL complexes
- Virgules en début ou en fin de ligne en SQL
- Mettre en forme le SQL pour la revue de code et le contrôle de version
- Erreurs de lisibilité SQL courantes
- Mettre en forme les requêtes PostgreSQL et le PL/pgSQL
- Différences entre dialectes SQL qui influencent la mise en forme
- Checklist de mise en forme SQL avant de déployer une migration
- Documentation des options : ce que fait chaque réglage, avec des exemples