🗄️
Developer/SQL Formatter

SQL Formatter

Format and beautify SQL queries with syntax highlighting. Supports 6 dialects — Standard SQL, MySQL, PostgreSQL, T-SQL, PL/SQL, and SQLite.

100% LOCAL4 dialectsSyntax highlightCompress modeCopy result
Saved Queries· Auto-save on
▾
La calculatricePage 1
Generic ANSI SQL
Input SQL
Formatted SQL
SELECT
  u.id,
  u.name,
  u.email,
  count(o.id) AS order_count,
  sum(o.total) AS total_spent
FROM
  users u
  LEFT JOIN orders o ON u.id = o.user_id
WHERE
  u.created_at >= '2026-01-01'
  AND u.status = 'active'
GROUP BY
  u.id,
  u.name,
  u.email
HAVING
  count(o.id) > 0
ORDER BY
  total_spent DESC
LIMIT
  10;
Query Stats
Characters286
Lines22
Keywords8
DialectStandard SQL
ModeFormatted
Data Source & Legal Disclaimer
Effective: 2026
Sources: Browser-side processing (no external API)

This tool runs 100% in your browser. All computation happens locally on your device — your input is never uploaded to any server. Results are for reference only.

See all data sources & update policy →
Comment ça marchePage 2

How SQL formatting works — illustrated

A formatter is a small compiler pipeline with two stages. The lexer reads the raw query and classifies each run of characters as a keyword, identifier, string literal, number, or operator — the same tokens a database parser would see. The printer then re-emits that token stream: it converts keywords to the chosen case (UPPERCASE, lowercase, or preserve), puts each major clause — SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY — on its own line, indents nested expressions by 2 spaces (or a tab), and always leaves string literals byte-for-byte intact. That last rule is what makes compress mode safe: newlines are stripped outside literals, so a multi-line string inside a query survives minification. Dialect support (MySQL backticks, T-SQL brackets, Postgres dollar quotes) tunes both stages.

The tokenizer-and-printer pipeline
SQL FORMATTING PIPELINEselect u.id,u.name from users u where u.age>18LEXER — TOKEN STREAMselect u.id, u.name from users u where u.age > 18PRINTER: keyword case · 2-space indent · one clause per line · literals preservedSELECT u.id, u.nameFROM users uWHERE u.age > 18

Formatting never changes what the query means — it only changes how the token stream is laid out.

Worked example

Ken maintains an analytics dashboard and pastes a minified SQL query his colleague copied straight out of the database console.

  1. Paste:He drops in "select u.id,u.name,count(o.id) as c from users u left join orders o on u.id=o.user_id where u.created_at>='2026-01-01' group by u.id order by c desc limit 10;" as one cramped line.
  2. Dialect:He selects PostgreSQL (dollar quotes, ARRAY, RETURNING) and sets keyword case to UPPERCASE with a 2-space indent.
  3. Format:The formatter reflows it — SELECT, FROM, LEFT JOIN, WHERE, GROUP BY, ORDER BY each on their own line, with the string literal '2026-01-01' left byte-for-byte intact.
  4. Verify:The query stats show lines jump from 1 to 7; he copies the formatted version back into the query editor and it runs with identical results.
FAQ et détailsPage 3

To format SQL: paste your query — the tool adds proper indentation, capitalizes keywords, and aligns clauses for readability. Supports MySQL, PostgreSQL, SQLite, and SQL Server.

FreeToolHub SQL Formatter is a free browser-based tool that beautifies and validates SQL queries, no signup, no upload.

À propos de cet outil

Qu'est-ce que cet outil ?

Formatez et embellissez les requêtes SQL avec coloration syntaxique. Prend en charge le SQL standard, MySQL, PostgreSQL et T-SQL. Mode compression disponible. Gratuit, sans inscription.

4 dialectsSyntax highlightCompress modeCopy result

Qu'est-ce que le SQL Formatter ?

Ce formateur embellit les requêtes SQL : il analyse l'instruction, applique une indentation et une mise en majuscules cohérentes aux mots-clés, divise les longues clauses en lignes lisibles, et ajoute une coloration syntaxique pour que la structure saute aux yeux. Il gère le SQL standard ainsi que les dialectes importants au quotidien — MySQL, PostgreSQL et T-SQL — et inclut un mode compression qui supprime les espaces blancs pour envoyer des requêtes via des API ou les intégrer dans du code où la taille compte. Le formatage s'exécute entièrement dans votre navigateur ; les requêtes ne touchent jamais un serveur, ce qui est crucial pour tout ce qui touche aux données de production.

Qui devrait utiliser cet outil ?

Les analystes héritant de requêtes de plusieurs milliers de caractères collées à partir de journaux ou d'outils BI qui ont besoin de les rendre lisibles avant de les modifier. Les développeurs examinant des requêtes dans les relectures de code où le bruit du formatage noie les modifications logiques. Les administrateurs de bases de données documentant des requêtes et vues sauvegardées avec un style cohérent. Les ingénieurs de données déplaçant des requêtes entre dialectes qui veulent une gestion des mots-clés adaptée au dialecte. Quiconque colle du SQL dans des tickets, de la documentation ou Slack où un mur de texte perd le lecteur.

Comment ça fonctionne ?

(1) Collez votre requête — instruction unique ou par lot. (2) Choisissez le dialecte : SQL standard, MySQL, PostgreSQL ou T-SQL, afin que les mots-clés et fonctions soient formatés selon ce style. (3) Le formateur indente les sous-requêtes imbriquées et les clauses JOIN sur leurs propres lignes, met les mots-clés en majuscules et aligne les listes de colonnes ; ajustez la largeur d'indentation si le style de votre équipe diffère. (4) Utilisez le mode compression pour minimiser lorsque vous avez besoin que la requête soit compacte. (5) Copiez le résultat ; le formatage préserve la sémantique, donc la sortie s'exécute de manière identique.

Pourquoi le formatage SQL est-il important ?

Le SQL non formaté est là que les bogues se cachent. Une clause WHERE entassée sur une seule ligne rend un AND manquant invisible ; des conditions alignées rendent les clés de jointure erronées évidentes d'un seul regard ; une mise en majuscules cohérente des mots-clés permet à l'œil de séparer instantanément la structure des données. Les conventions qui ont convergé entre équipes : mots-clés en majuscules et sur leurs propres lignes pour les clauses principales (SELECT, FROM, WHERE, GROUP BY, ORDER BY) ; une colonne par ligne dans les listes SELECT pour les longues requêtes, avec une convention de virgule finale que votre équipe choisit une fois ; les JOINs avec leur condition indentée sous la jointure ; les sous-requêtes indentées d'un niveau et séparées par une ligne vide. Au-delà de la lisibilité, le formatage est un contrat de collaboration : la relecture de code sur des requêtes formatées de manière cohérente revoit la logique au lieu d'argumenter sur les espaces blancs, et les diffs sur des requêtes formatées montrent les changements réels plutôt que le bruit de refluage. Le choix du dialecte compte plus que ce que l'on attend — T-SQL et PostgreSQL traitent certaines fonctions et identifiants différemment — donc formatez avec le dialecte que vous exécutez, et lors de l'envoi de requêtes via des API ou de leur intégration dans du code d'application, le mode compression supprime à nouveau les espaces blancs.

Questions fréquentes

Pourquoi les dialectes SQL sont-ils importants pour le formatage ?

Parce que la même requête peut être écrite différemment selon le moteur : PostgreSQL utilise LIMIT tandis que SQL Server utilise TOP, MySQL met les identifiants entre backticks tandis que PostgreSQL utilise des guillemets doubles, et les packages PL/SQL ajoutent des blocs que le SQL standard n'a jamais. Formater avec le mauvais dialecte risque de reformater autour d'une syntaxe que le moteur n'accepte pas. Choisissez d'abord le dialecte — le formateur ajuste la gestion des mots-clés pour correspondre.

MAJUSCULES ou minuscules pour les mots-clés — y a-t-il un standard ?

Les mots-clés en MAJUSCULES sont une convention héritée des dumps des systèmes centraux à cartes perforées et restent le style le plus courant dans les entreprises SQL ; le minuscules l'emporte dans les équipes plus récentes et dans les générateurs de requêtes qui colorent la syntaxe de toute façon. Les deux sont acceptables — la cohérence au sein d'une base de code prime sur toute règle externe. Le formateur bascule la casse en un clic pour que vous puissiez correspondre au fichier que vous modifiez, pas le combattre.

Mon SQL quitte-t-il mon navigateur lorsque je le formate ?

Non — l'analyse et le formatage s'exécutent entièrement en JavaScript dans votre page, et rien n'est téléversé. Cela compte plus qu'il n'y paraît : de vraies requêtes intègrent des noms de table, de colonnes et des valeurs WHERE qui décrivent votre activité. Les coller sur un site aléatoire est une fuite de données en attente d'un fichier journal ; ici le trajet aller-retour ne quitte jamais l'onglet.

Qu'est-ce que le style à virgule initiale et pourquoi les gens l'utilisent-ils ?

Les virgules initiales placent la virgule au début de chaque ligne de colonne (`, col2` au lieu de `col1,`) ainsi ajouter ou supprimer une ligne ne touche jamais sa voisine — des diffs plus propres dans les relectures de code et moins d'erreurs de virgule manquante lors de la modification de longues listes SELECT. Le style à virgule finale se lit plus naturellement pour la plupart des gens. Le formateur prend en charge les deux ; choisissez ce que fait le code existant de votre équipe.

Quels dialectes SQL prend-il en charge ?

SQL standard (ANSI), MySQL, PostgreSQL et T-SQL (SQL Server). Il gère les requêtes complexes incluant JOINs, sous-requêtes, CTEs (clauses WITH), fonctions de fenêtre et UNION/INTERSECT/EXCEPT. Le formateur applique une indentation cohérente, une capitalisation des mots-clés (SELECT/FROM/WHERE) et aligne les listes de colonnes pour une meilleure lisibilité. Un mode compression minimise les espaces blancs pour les requêtes de production.

Préserve-t-il les commentaires et les littéraux de chaîne ?

Oui. L'analyseur tokenize le SQL pour distinguer les littéraux de chaîne (guillemets simples), les commentaires de ligne (--), les commentaires de bloc (/* */) et les identifiants des mots-clés. Les commentaires et le contenu des chaînes sont préservés exactement tels quels. Cela empêche le formateur de casser des indices SQL en ligne ou de modifier des valeurs de chaîne pendant le formatage.

Which SQL dialects does it support?

Standard SQL (ANSI), MySQL, PostgreSQL, and T-SQL (SQL Server). It handles complex queries including JOINs, subqueries, CTEs (WITH clauses), window functions, and UNION/INTERSECT/EXCEPT. The formatter applies consistent indentation, keyword capitalization (SELECT/FROM/WHERE), and aligns column lists for readability. A compression mode minifies whitespace for production queries.

Does it preserve comments and string literals?

Yes. The parser tokenizes SQL to distinguish string literals (single quotes), line comments (--), block comments (/* */), and identifiers from keywords. Comments and string contents are preserved exactly as-is. This prevents the formatter from breaking inline SQL hints or altering string values during formatting.

Outils connexes

Partager :𝕏inf⬆
Joke of the Day
Oct 22

What do you call a really smart cookie?

Free core, no account

Keep the Free Edition Free

No signups, no data sold. Every tool is free to use — the free tier allows 5 downloads or saves per day, and the optional Pro plan ($7/mo, $59/yr) adds unlimited downloads, batch processing, white-label exports and an ad-free experience.

☕Support me on Ko-fi— support the free tier

100% of proceeds go towards hosting & building more free tools.