Anleitung
- Fügen Sie eine oder mehrere SQL-Anweisungen ein oder klicken Sie auf „Beispiel ausprobieren“.
- Wählen Sie den Dialekt Ihrer Datenbank aus, damit Schlüsselwörter, Anführungszeichen und Operatoren richtig erkannt werden.
- Legen Sie die Schreibweise der Schlüsselwörter und den Einzug fest. Die formatierte Abfrage erscheint beim Tippen rechts.
- Klicken Sie auf „Minifizieren“, um eine einzeilige Version zu erhalten. Kopieren Sie das Ergebnis oder laden Sie es als .sql-Datei herunter.
So funktioniert es
Die Formatierung basiert auf der Open-Source-Bibliothek sql-formatter. Sie zerlegt die Abfrage anhand der Regeln des ausgewählten Dialekts in Tokens, setzt jede wichtige Klausel (SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY …) in eine eigene Zeile, rückt Spaltenlisten und Bedingungen ein und passt die Schreibweise der Schlüsselwörter an. Geändert werden Leerzeichen und – falls gewünscht – die Groß-/Kleinschreibung von Schlüsselwörtern; Bezeichner, Zeichenfolgenliterale und Kommentare bleiben unverändert. Der richtige Dialekt ist wichtig: Namen werden in MySQL beispielsweise mit Backticks, in SQL Server mit eckigen Klammern und in PostgreSQL mit $$ für Funktionskörper abgegrenzt.
Der Formatierer dient nur der übersichtlichen Darstellung und ist keine Datenbank. Er prüft nicht, ob Tabellen oder Spalten vorhanden sind, und validiert auch nicht die vollständige Grammatik. Daher kann ungültiges SQL ohne Fehlermeldung formatiert werden. Wenn die Eingabe nicht verarbeitet werden kann, etwa wegen einer nicht geschlossenen Klammer, werden die Zeile und Spalte angegeben, an denen die Verarbeitung abgebrochen ist.
Die Minifizierung funktioniert anders: Alle Tokens bleiben erhalten, zusammenhängende Leerzeichen werden zu einem einzelnen Leerzeichen zusammengefasst und Kommentare entfernt. Optimierungshinweise wie /*+ INDEX(t) */ und MySQL-Kommentare wie /*! … */ bleiben erhalten, da sie das Verhalten ändern. Zeichenfolgen, in Anführungszeichen gesetzte Bezeichner und mit Dollarzeichen abgegrenzte Funktionskörper werden unverändert übernommen. Ist ein Anführungszeichen oder Kommentar nicht geschlossen, bricht die Minifizierung mit einer Fehlermeldung ab, statt zu raten.
Beispiele
Eine Abfrage aus einem Protokoll lesen
Ein Protokoll für langsame Abfragen enthält eine 400 Zeichen lange Zeile. Mit dem MySQL-Dialekt und großgeschriebenen Schlüsselwörtern wird daraus ein übersichtlicher Block, in dem jeder JOIN und jede WHERE-Bedingung in einer eigenen Zeile steht. So lässt sich der fehlende Index leicht erkennen.
Einheitlicher Stil für Code-Reviews
Ein Team formatiert jede Migration vor dem Commit mit dem PostgreSQL-Dialekt, kleingeschriebenen Schlüsselwörtern und einem Einzug von 4 Leerzeichen. So zeigen Diffs nur tatsächliche Änderungen.
SQL in Code einbetten
Die Minifizierung wandelt eine kommentierte, mehrzeilige Berichtsabfrage in eine einzelne Zeile um, etwa SELECT id, name FROM users WHERE active = 1 ORDER BY name. Diese lässt sich direkt in eine Zeichenfolge in einem Skript einfügen.
Häufig gestellte Fragen
Welche Datenbanken werden unterstützt?
Standard-SQL, MySQL, MariaDB, PostgreSQL, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Redshift, Spark SQL, Hive, Trino/Presto, DuckDB, IBM Db2, SingleStoreDB, TiDB und Couchbase N1QL.
Ändert die Formatierung das Verhalten meiner Abfrage?
Das sollte nicht passieren: Nur Leerzeichen und – falls ausgewählt – die Groß-/Kleinschreibung der Schlüsselwörter ändern sich. In SQL spielt die Schreibweise von Schlüsselwörtern keine Rolle. Prüfen Sie die formatierte Ausgabe trotzdem, bevor Sie sie mit Produktivdaten ausführen – besonders bei ungewöhnlichen Dialektfunktionen.
Warum erscheint die Meldung „Formatierung nicht möglich“?
Der Tokenizer ist auf etwas gestoßen, das er nicht zuordnen konnte – häufig eine nicht geschlossene Klammer oder ein nicht geschlossenes Anführungszeichen oder Syntax aus einem anderen Dialekt. Prüfen Sie die in der Meldung angegebene Zeile und Spalte und stellen Sie sicher, dass der ausgewählte Dialekt zu Ihrer Datenbank passt.
Wird mein SQL validiert?
Nein. Das Tool ist nicht mit einer Datenbank verbunden und kennt Ihr Schema nicht. Eine Abfrage kann formatiert werden und beim Ausführen trotzdem fehlschlagen.
Datenschutz
Ihr SQL wird mit JavaScript in Ihrem Browser formatiert. Es wird weder hochgeladen noch gespeichert oder in Analysen einbezogen. Das Tool stellt keine Verbindung zu einer Datenbank her.