SQL formatieren — SQL-Formatter und Beautifier online
SQL formatieren (MySQL, PostgreSQL und weitere Dialekte, Groß-/Kleinschreibung, Einrückung)
Verarbeitung im Browser · kein Hochladen
Was das Tool ist
Eine Abfrage aus einem Log oder einem ORM kommt oft als eine lange Zeile oder mit uneinheitlicher Einrückung an, was Lesen und Code-Reviews erschwert. Dieses Tool teilt SQL in Klauseln wie SELECT, FROM und WHERE auf und rückt es einheitlich ein. Das Ergebnis aktualisiert sich während der Eingabe.
Anleitung
- Fügen Sie Ihr SQL in das Eingabefeld ein. Mehrere durch Semikolons getrennte Anweisungen sind kein Problem.
- Wählen Sie den Dialekt Ihrer Datenbank.
- Wählen Sie, ob Schlüsselwörter groß, klein oder wie eingegeben geschrieben werden.
- Wählen Sie 2 Leerzeichen, 4 Leerzeichen oder Tabulator als Einrückung und kopieren Sie das Ergebnis.
So funktioniert es
- Die Formatierung übernimmt die Open-Source-Bibliothek
sql-formatter. Sie zerlegt die Eingabe in Tokens und legt Zeilenumbrüche und Einrückung anhand von Klauseln und Klammertiefe fest. - Unterstützte Dialekte sind Standard-SQL, MySQL, PostgreSQL, MariaDB, SQLite, BigQuery, Oracle (PL/SQL) und SQL Server (T-SQL). Der Dialekt bestimmt, wie Anführungszeichen für Bezeichner (
`,",[ ]), Parameter-Platzhalter (?,$1,@name) und Operatoren gelesen werden. - Die MyBatis-Platzhalter
#{id},#{name,jdbcType=VARCHAR}und${table}bleiben in jedem Dialekt unverändert. In MySQL leitet#normalerweise einen Kommentar ein,#{wird aber als Platzhalter behandelt. Auch ein Platzhalter über mehrere Zeilen bleibt erhalten; verschachtelte Klammern wie#{list[${i}]}werden nicht unterstützt. - Bind-Parameter:
?und:namein Standard-SQL, MySQL und MariaDB;$1und:namein PostgreSQL;:namein Oracle;@namein SQL Server und BigQuery; SQLite akzeptiert?,?1,:name,@nameund$name. - Fehlermeldungen nennen Zeile, Spalte und Text der Stelle, an der das Parsen abgebrochen ist.
- Die Option für die Schreibweise gilt nur für reservierte Wörter. String-Literale, Kommentare und Bezeichner, auch Tabellen- und Spaltennamen mit Umlauten, werden nicht verändert.
- Die Tabulator-Option verwendet ein Tabulatorzeichen pro Einrückungsebene.
- Das Tool formatiert nur um. Es führt die Abfrage nicht aus und prüft nicht ihre Bedeutung.
Beispiele
Eingabe:
select id, name from users where age > 20 and city = 'München' order by name
Ergebnis (Standard-SQL, Großbuchstaben, 2 Leerzeichen):
SELECT
id,
name
FROM
users
WHERE
age > 20
AND city = 'München'
ORDER BY
name
Häufige Fragen
Wird meine Abfrage an einen Server gesendet?
Nein. Die Formatierung läuft mit der Bibliothek sql-formatter in Ihrem Browser, Abfragen werden weder übertragen noch gespeichert. Zeigen Sie Abfragen mit echten Passwörtern oder personenbezogenen Daten trotzdem nicht auf einem geteilten Bildschirm.
Welchen Dialekt sollte ich wählen?
Wählen Sie die Datenbank, die Sie verwenden. Dann wird dialektspezifische Syntax richtig erkannt, etwa Backticks in MySQL, `::`-Casts und `$1`-Parameter in PostgreSQL. Wenn Sie unsicher sind, beginnen Sie mit Standard-SQL.
Kann die Formatierung das Verhalten meiner Abfrage ändern?
Es ändern sich nur Leerraum, Zeilenumbrüche und die Schreibweise der Schlüsselwörter. String-Literale, Kommentare und Bezeichner behalten ihren Inhalt, und die Änderung der Groß-/Kleinschreibung berührt nie Werte in Anführungszeichen. Die Abfrage verhält sich also genauso.
Was tun, wenn ein Fehler gemeldet wird?
Ein nicht geschlossenes Anführungszeichen oder ein Zeichen, das der gewählte Dialekt nicht kennt, kann den Parser stoppen. Prüfen Sie die in der Meldung genannte Stelle oder probieren Sie einen anderen Dialekt. Das Tool formatiert nur und validiert nicht, es findet also nicht jeden Fehler in Ihrem SQL.