Jede SQL-Abfrage formatieren, prüfen und verstehen.
Neunzehn Dialekte, ein Linter, der Zeile und Spalte nennt, Syntaxhervorhebung und die Aufschlüsselung jeder Anweisung — alles in diesem Tab, ohne irgendetwas hochzuladen.
Hier startet nichts von allein. Drück auf Formatieren, wenn die Abfrage bereit ist.
Noch nichts geladen.
Die Aufschlüsselung erscheint, sobald es eine Anweisung gibt.
Neunzehn Dialekte, nicht einer
PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, BigQuery, Snowflake, Redshift, DuckDB, Oracle und mehr — jeder mit eigenen reservierten Wörtern, Anführungszeichen und Platzhaltern. Abfrage einfügen, der Dialekt wird erraten.
Probleme mit Zeilennummer
Offene Anführungszeichen und Klammern, ein DELETE ohne WHERE, ein LIMIT ohne ORDER BY. Jeder Fund nennt Zeile und Spalte, ein Klick setzt den Cursor dorthin.
Abseits des Haupt-Threads
Formatiert wird in einem Web Worker, damit ein 5-MB-Dump die Seite währenddessen nicht einfriert. Die Zeit neben dem Ergebnis ist die tatsächlich gemessene.
Nichts verlässt den Tab
Kein Upload, kein Konto, kein Serverweg. Eine Produktionsabfrage trägt Tabellennamen, IDs und Geschäftslogik — und nichts davon geht irgendwohin.
So funktioniert es
Abfrage hereinholen
Einfügen, eine .sql-Datei ablegen, ein Beispiel laden oder von einem anderen Werkzeug übergeben lassen. Eine abgelegte Datei wartet: Es wird nichts geladen oder formatiert, bevor du es sagst.
Regeln festlegen
Dialekt, Groß- und Kleinschreibung der Schlüsselwörter, Einrücktiefe, wo AND und OR stehen, wie breit ein Ausdruck werden darf. Jede Option ändert das Ergebnis des nächsten Formatierens.
Auf Formatieren drücken
Die Engine schreibt die Abfrage neu, das Prüfpanel listet auf, was einen Blick wert ist, und die Übersicht zeigt Anweisungen, Tabellen, Joins und CTEs.
Mitnehmen
Kopieren, die .sql herunterladen oder direkt an ein anderes Werkzeug der Suite schicken: zwei Versionen vergleichen, ein Bild daraus machen, einen Hash bilden.
Formatieren ist nur die halbe Arbeit
Die meisten SQL-Beautifier im Netz können eines: Zeilenumbrüche einfügen. Das reicht, bis die Abfrage nicht nur hässlich, sondern falsch ist — ein Anführungszeichen, das mittendrin offen bleibt, eine Klammer, die nie schließt, ein WHERE, das beim Kopieren verloren ging. SQLFlow liest die Abfrage als Token, bevor es sie anfasst, und kann deshalb Zeile und Spalte des Problems nennen, statt stillschweigend zerstückelte Ausgabe zu liefern.
Dieser Token-Durchlauf schützt auch deine Daten. Ein naiver Formatierer jagt einen regulären Ausdruck über den gesamten Text — dann werden die Leerzeichen in 'hallo welt' zusammengezogen und ein Komma innerhalb eines Kommentars beginnt eine neue Zeile. Hier sind Zeichenkette und Kommentar unantastbare Einheiten: Was du hineingeschrieben hast, kommt Byte für Byte wieder heraus, egal welchen Dialekt du wählst.
Und weil derselbe Durchlauf die Übersicht baut, bekommst du mehr als hübschen Text: die Anweisungen der Datei, die Tabellen jeder einzelnen, die CTEs, die Joins und die Platzhalter, die noch auf einen Wert warten. Das ist der Unterschied zwischen einer Abfrage, die ordentlich aussieht, und einer Abfrage, die du verstehst, bevor du sie gegen die Produktion laufen lässt.
Häufige Fragen
Wird meine Abfrage an einen Server geschickt?
Nein. Der Formatierer und alles drumherum laufen in deinem Browser. Es gibt keinen Upload und keinen API-Aufruf, die Abfrage verlässt dein Gerät also nie.
Welche SQL-Dialekte werden unterstützt?
Neunzehn: Standard-SQL, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Redshift, DuckDB, ClickHouse, Spark, Hive, Trino, Db2, SingleStore, TiDB und N1QL. Jeder bringt eigene reservierte Wörter, Anführungsregeln und Platzhaltersyntax mit, und der Dialekt wird nach Möglichkeit aus der Abfrage erraten.
Ändert das, was meine Abfrage tut?
Nein. Formatieren berührt nur Leerraum und die Schreibweise der Schlüsselwörter. Zeichenketten, Kommentare und in Anführungszeichen gesetzte Namen kommen exakt so heraus, wie du sie geschrieben hast — inklusive der Leerzeichen darin.
Was prüft das Prüfpanel?
Nicht geschlossene Anführungszeichen, Kommentare und Klammern; Anweisungen ohne SQL-Schlüsselwort am Anfang; DELETE und UPDATE ohne WHERE; DROP und TRUNCATE; SELECT *; per Komma ohne Bedingung verbundene Tabellen; LIMIT ohne ORDER BY; INSERT ohne Spaltenliste; und das fehlende Semikolon am Ende. Jeder Punkt nennt Zeile und Spalte.
Warum passiert nichts, wenn ich eine Abfrage einfüge?
Das ist Absicht: Der Formatierer läuft nur, wenn du auf Formatieren oder Strg+Enter drückst. Wenn er beim Tippen mitlaufen soll, schalte unter Mehr Optionen „Beim Tippen formatieren“ ein.
Kann ich mehrere Anweisungen auf einmal formatieren?
Ja. Durch Semikolon getrennte Anweisungen werden gemeinsam formatiert, und die Übersicht listet jede mit ihren Tabellen auf, sodass du direkt hinspringen kannst.