Werkzeuge
Leitfäden

SQL-Formatierer

Formatierung

SQL über viele Dialekte (MySQL, PostgreSQL, T-SQL u. a.) mit sql-formatter formatieren oder minifizieren.

100 % clientseitig Ohne Backend
SQL
Ausgabe
Auf dieser Seite

Was ist ein SQL-Formatierer?#

Ein SQL-Formatierer verwandelt eine Abfrage, die für die Engine geschrieben wurde — oft auf eine Zeile gequetscht oder mit zufälliger Einrückung aus einem Log herauskopiert — in eine Abfrage, die für einen Menschen geschrieben ist. Schlüsselwörter stehen auf eigenen Zeilen, Spalten reihen sich, Unterabfragen steigen eine Ebene ein und eine WHERE-Klausel mit fünf AND-Bedingungen hört auf, eine Textwand zu sein. Die umgekehrte Operation, das Minifizieren, kollabiert den gesamten Whitespace zurück auf eine einzige Zeile, wenn eine Abfrage durch eine Konfigurationsdatei oder einen API-Parameter wandern muss.

Was SQL-Formatierung knifflig macht, ist, dass jede Datenbank ihren eigenen Dialekt hat. Eine Postgres-Abfrage mit RETURNING, eine MySQL-Abfrage mit backtick-quotierten Bezeichnern, eine SQL-Server-Abfrage mit TOP (n) und eine BigQuery-Abfrage mit Struct- und Array-Literalen sehen alle unterschiedlich aus, und ein Formatierer, der so tut, als gäbe es ein einziges universelles SQL, wird die Randfälle subtil falsch behandeln. Diese Seite löst das, indem sie sql-formatter mit expliziter Dialektauswahl verwendet: Standard-SQL, MySQL, MariaDB, PostgreSQL, SQLite, T-SQL, PL/SQL, BigQuery, Redshift, Snowflake, DB2 und Trino. Sie wählen den Dialekt, den Ihre Datenbank tatsächlich spricht, und der Formatierer parst entsprechend.

Verwendung#

  1. Fügen Sie Ihre Abfrage in die SQL-Fläche links ein oder klicken Sie auf Beispiel, um ein kurzes Beispiel zu laden.
  2. Wählen Sie auf der Werkzeugleiste einen Dialekt — die Sprachvariante Ihrer Datenbank. Der Standard sql ist ein sicherer generischer Geschmack; wechseln Sie zu postgresql, mysql, tsql und so weiter, wenn die Abfrage dialektspezifische Syntax verwendet.
  3. Wählen Sie eine Einrückung: 2, 4 oder Tabulator. Vier Leerzeichen sind bei SQL verbreitet, weil sie lange Spaltenlisten lesbar halten.
  4. Klicken Sie auf eine Aktion:
    • Formatieren — neu einrücken, die Abfrage auf logische Zeilen umbrechen und Schlüsselwörter standardmäßig groß schreiben, sodass SELECT, FROM und WHERE sich von Bezeichnern abheben.
    • Minifizieren---Zeilenkommentare und /* */-Blockkommentare entfernen und dann jede Whitespace-Folge auf ein einziges Leerzeichen kollabieren. Zeilenumbrüche werden zu Leerzeichen, was für SQL sicher ist, weil Anweisungen auf einem Semikolon enden, nicht auf einem Zeilenumbruch.
  5. Lesen Sie das Ergebnis in der Ausgabe-Fläche. Verwenden Sie Kopieren, um es zu übernehmen; Leeren setzt beide Flächen zurück.

Eckpunkte#

  • Zwölf Dialekte. MySQL, MariaDB, PostgreSQL, SQLite, T-SQL, PL/SQL, BigQuery, Redshift, Snowflake, DB2, Trino sowie generisches Standard-SQL. Die Grammatik des Formatierers passt sich an, sodass dialektspezifische Schlüsselwörter korrekt platziert werden.
  • Schlüsselwort-Groß-/Kleinschreibung. Formatieren schreibt Schlüsselwörter standardmäßig groß (select wird zu SELECT) und lässt Ihre Bezeichner unangetastet. Das ist rein kosmetisch und verändert nie, was die Abfrage tut.
  • Sicheres Minifizieren. Whitespace kollabiert auf einzelne Leerzeichen; SQL ist semikolon-terminiert, sodass das Zusammenführen von Zeilen nicht zwei Anweisungen verschmelzen kann wie in zeilenumbruch-sensitiven Sprachen.
  • Kommentar-Entfernung beim Minifizieren. Sowohl --- als auch /* */-Kommentare werden beim Minifizieren entfernt, damit der Payload schlank bleibt.
  • Zweispaltig, kopierbereit, vollständig clientseitig. Der Formatierer läuft in Ihrem Browser; die Abfrage wird nirgendwo hingesendet.

Konkretes Beispiel#

Eine Reporting-Abfrage, die auf eine Zeile gekippt wurde, mit einem Kommentar, einem Join und einem GROUP BY:

Eingabe:

select u.id,u.name,count(o.id) as orders from users u join orders o on o.user_id=u.id where u.status='active' and o.created_at >= '2026-01-01' group by u.id,u.name order by orders desc

Wählen Sie postgresql als Dialekt und klicken Sie dann auf Formatieren mit 2 Leerzeichen:

SELECT
  u.id,
  u.name,
  count(o.id) AS orders
FROM
  users u
  JOIN orders o ON o.user_id = u.id
WHERE
  u.status = 'active'
  AND o.created_at >= '2026-01-01'
GROUP BY
  u.id,
  u.name
ORDER BY
  orders DESC

Jede Klausel hat jetzt ihre eigene Zeile, die Join-Bedingung ist sichtbar und die beiden WHERE-Prädikate sind getrennt, sodass Sie auf einen Blick erkennen, dass der Datumsfilter >= und nicht > ist. Die Schlüsselwörter wurden großgeschrieben, während die Spaltennamen genau so blieben, wie sie geschrieben wurden. Klicken Sie auf Minifizieren auf dieselbe Eingabe und Sie erhalten die einzeilige Form zurück, bereit zum Einfügen in eine Konfiguration oder einen ?query=-Parameter:

select u.id,u.name,count(o.id) as orders from users u join orders o on o.user_id=u.id where u.status='active' and o.created_at >= '2026-01-01' group by u.id,u.name order by orders desc

FAQ#

Welchen Dialekt soll ich wählen?#

Passen Sie ihn zu Ihrer Datenbank. Wenn Sie unsicher sind, ist generisches sql ein vernünftiger Ausgangspunkt und behandelt die gängigen Klauseln korrekt. Wechseln Sie zum spezifischen Dialekt, wenn die Abfrage Syntax verwendet, die die generische Grammatik nicht erwartet — RETURNING (Postgres), Backtick-Bezeichner (MySQL), TOP (n) (T-SQL) oder Struct-/Array-Literale (BigQuery). Ein falscher Dialekt formatiert meistens noch, kann aber ein exotisches Schlüsselwort falsch platzieren.

Warum schreibt Formatieren Schlüsselwörter groß, aber nicht meine Spaltennamen?#

Weil Großschreiben von Schlüsselwörtern eine Lesbarkeitskonvention ist, die niemals die Bedeutung verändert — SELECT und select sind für die Engine identisch —, während Ihre Bezeichner möglicherweise groß-/kleinsensitiv sind (Postgres faltet unquotierte Bezeichner zu Kleinbuchstaben; MySQL ist auf manchen Plattformen groß-/kleinsensitiv). Bezeichner unangetastet zu lassen ist die sichere Voreinstellung. Wenn Sie kleingeschriebene Schlüsselwörter bevorzugen, formatieren Sie die Abfrage und machen Sie dann einen manuellen Durchlauf.

Behält Minifizieren Skripte mit mehreren Anweisungen?#

Es kollabiert jede Whitespace-Folge auf ein einzelnes Leerzeichen, inklusive Zeilenumbrüche, belässt Semikola aber genau dort, wo sie waren. Aus SELECT 1; SELECT 2; werden also zwei durch ; getrennte Anweisungen. Davon abgesehen ist eine einzeilige minifizierte Form für ein langes Migrationsskript mit vielen Anweisungen schwer zu lesen und schwer zu debuggen — Minifizieren eignet sich für eine einzelne Abfrage oder einen kurzen Batch.

Wird meine Abfrage irgendwo hochgeladen?#

Nein. Der Formatierer ist in die Seite gebündelt und läuft lokal in Ihrem Browser. Nichts an Ihrem SQL — weder die Tabellennamen noch die Literale — verlässt den Tab.