So verwenden Sie den SQL-Formatter
- Fügen Sie eine oder mehrere SQL-Anweisungen in das Eingabefeld ein.
- Wählen Sie den Dialekt, der zu Ihrer Datenbank passt: Standard-SQL, MySQL, PostgreSQL, SQL Server (T-SQL), SQLite, MariaDB, BigQuery, Snowflake oder Oracle PL/SQL.
- Legen Sie die Schreibweise der Schlüsselwörter fest: GROSSBUCHSTABEN, kleinbuchstaben oder so beibehalten, wie geschrieben.
- Stellen Sie die Einrückung ein.
- Klicken Sie auf SQL formatieren und kopieren Sie das Ergebnis.
Ihre Abfragen werden im Browser formatiert und nie hochgeladen oder gespeichert. Sie können also bedenkenlos Produktionsabfragen einfügen, die Tabellennamen oder Geschäftslogik verraten.
Warum SQL formatieren?
SQL ignoriert Leerraum: Die Datenbank führt eine einzeilige Abfrage genau so aus wie eine sauber eingerückte. Menschen lesen beide aber völlig unterschiedlich. Abfragen aus ORM-Logs, Monitoring-Tools oder Slow-Query-Berichten kommen meist als eine einzige lange Zeile an, sodass kaum zu erkennen ist, welche Bedingungen zu welchem Join oder welcher Unterabfrage gehören.
Ein Formatter setzt jede Hauptklausel (SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY) in eine eigene Zeile und rückt verschachtelte Teile einheitlich ein. Ein Vergleich:
select u.id,u.email,count(o.id) as orders from users u left join orders o on o.user_id=u.id where u.created_at>='2026-01-01' group by u.id,u.email having count(o.id)>5 order by orders desc;
SELECT
u.id,
u.email,
COUNT(o.id) AS orders
FROM
users u
LEFT JOIN orders o ON o.user_id = u.id
WHERE
u.created_at >= '2026-01-01'
GROUP BY
u.id,
u.email
HAVING
COUNT(o.id) > 5
ORDER BY
orders DESC;
Die formatierte Version lässt sich in einem Pull Request leichter prüfen und leichter debuggen, und sie erzeugt sauberere Diffs, wenn später jemand eine Spalte oder Bedingung hinzufügt.
Warum der Dialekt wichtig ist
Jede Datenbank erweitert Standard-SQL um eigene Syntax. Mit dem richtigen Dialekt erkennt der Formatter Schlüsselwörter, Operatoren und die Maskierung von Bezeichnern korrekt:
| Dialekt | Maskierung von Bezeichnern | Beispiele für spezielle Syntax |
|---|---|---|
| MySQL / MariaDB | `backticks` | LIMIT 10, ON DUPLICATE KEY UPDATE |
| PostgreSQL | "double quotes" | ::-Casts, RETURNING, ILIKE |
| SQL Server (T-SQL) | [brackets] | SELECT TOP 10, @variables |
| BigQuery | `backticks` | STRUCT, UNNEST, EXCEPT in SELECT * |
| Oracle PL/SQL | "double quotes" | FETCH FIRST 10 ROWS ONLY, BEGIN … END;-Blöcke |
Wird eine Abfrage seltsam formatiert, etwa weil ein Operator getrennt oder ein Schlüsselwort als Spaltenname behandelt wird, hilft meist der Wechsel zum richtigen Dialekt.
Häufige SQL-Fehler, die Sie durch Formatieren erkennen
Ein Formatter führt Ihre Abfrage nicht aus und validiert sie nicht vollständig, aber ein klares Layout macht viele Fehler offensichtlich:
- Ein fehlendes Komma in der Spaltenliste.
SELECT id name FROM usersist gültiges SQL, liefert aberidunter dem Aliasname. Mit einer Spalte pro Zeile fällt das fehlende Komma sofort auf. - Ein Filter auf eine per Outer Join verknüpfte Tabelle in
WHERE.LEFT JOIN orders o … WHERE o.status = 'paid'macht aus dem Outer Join stillschweigend einen Inner Join. Verschieben Sie die Bedingung in dieON-Klausel, wenn Zeilen ohne Treffer erhalten bleiben sollen. ANDundORgemischt ohne Klammern.ANDbindet stärker alsOR, daher bedeuteta OR b AND cdasselbe wiea OR (b AND c). Setzen Sie Klammern, um die Absicht eindeutig zu machen.- Unausgeglichene Klammern oder Anführungszeichen. Verrutscht die Einrückung in der Ausgabe plötzlich, suchen Sie kurz vor dieser Stelle nach einer nicht geschlossenen Klammer oder Zeichenkette.
Tipps und Best Practices
- Schlüsselwörter in Großbuchstaben sind eine weit verbreitete Konvention, weil sie die SQL-Syntax von Ihren Tabellen- und Spaltennamen abheben; Kleinschreibung ist genauso gültig. Entscheiden Sie sich pro Projekt für eine Variante.
- Vergeben Sie in Abfragen über mehrere Tabellen immer Tabellen-Aliase und qualifizieren Sie Spaltennamen (
u.idstattid). - Bauen Sie SQL nie durch Verketten von Benutzereingaben zusammen. Verwenden Sie parametrisierte Abfragen oder Prepared Statements, um SQL-Injection zu verhindern.
- Speichern Sie Zeitstempel als Ganzzahlen? Prüfen Sie mit dem Unix-Timestamp-Konverter, was ein Wert bedeutet, und nutzen Sie den UUID-Generator für Test-Primärschlüssel.
Häufig gestellte Fragen
Ändert das Formatieren, was meine Abfrage tut?
Nein. Der Formatter ändert nur Leerraum, Zeilenumbrüche und, wenn Sie es wählen, die Schreibweise der Schlüsselwörter. Bezeichner, Zeichenketten-Literale und die Logik der Abfrage bleiben unverändert.
Prüft der SQL-Formatter, ob meine Abfrage gültig ist?
Nicht vollständig. Er zerlegt die Abfrage in Tokens, um sie anzuordnen, daher kann stark fehlerhafte Eingabe zu merkwürdiger Ausgabe führen. Er prüft aber nicht, ob Tabellen oder Spalten existieren oder ob die Anweisung laufen würde. Nutzen Sie dafür Ihre Datenbank oder ein EXPLAIN.
Kann ich mehrere Anweisungen auf einmal formatieren?
Ja. Trennen Sie die Anweisungen mit Semikolons, dann wird jede nacheinander formatiert.
Sollten SQL-Schlüsselwörter großgeschrieben werden?
SQL-Schlüsselwörter unterscheiden in allen großen Datenbanken nicht zwischen Groß- und Kleinschreibung, es ist also eine reine Stilfrage. Großschreibung ist traditionell und in Dokumentationen üblich; viele moderne Teams bevorzugen Kleinschreibung. Entscheidend ist die Einheitlichkeit.
Aktualisiert