SQL formatieren, ohne die Abfrage zu verändern
Eine Abfrage mit drei Joins, in einer einzigen Zeile aus dem Log kopiert: Mit diesem Formatter wird daraus Text, den man lesen kann. Das Tool beherrscht 20 Dialekte, darunter Standard-SQL, PostgreSQL, MySQL, BigQuery und T-SQL.
Vom Einzeiler zur lesbaren Abfrage
- Füge die Abfrage bei SQL-Eingabe ein. Das Beispiel enthält ein
SELECTmit Join und Unterabfrage, einINSERTund einUPDATE. - Wähle den Dialekt. Voreingestellt ist Standard-SQL.
- Stelle Schreibweise, Einrückung und die übrigen Optionen ein. Jede Änderung formatiert sofort neu.
- Beim Tippen formatiert das Tool nach etwa 300 ms Pause. Mit Formatieren geht es sofort.
- Kopieren legt das Ergebnis in die Zwischenablage, .sql herunterladen speichert die Datei
formatted.sql.
Dialekt, Platzhalter und Parse-Fehler
Die meisten Fehlermeldungen haben dieselbe Ursache. Standard-SQL kennt weder den PostgreSQL-Cast a::int noch Namen in eckigen Klammern wie [dbo].[orders]. Dann erscheint ein Parse-Fehler mit Zeile und Spalte. Mit dem passenden Dialekt läuft derselbe Text durch.
Bei vorbereiteten Anweisungen kommen Platzhalter dazu: ?, $1, :name oder @name. Zeigt der Fehler auf einen davon, öffne Platzhalter-Stil und wähle den Stil deines Treibers. Alle Stile lässt alle vier zu. Die Platzhalter bleiben im Text stehen, es werden keine Werte eingesetzt.
Layout: Schlüsselwörter, Operatoren, AND und OR
Schlüsselwörter werden groß, klein oder wie eingegeben ausgegeben. Eingerückt wird mit 2 oder 4 Leerzeichen oder mit Tabulator. Die Breite von Ausdrücken (50, 80 oder 120 Zeichen) legt fest, wie lang ein Ausdruck in Klammern auf einer Zeile bleiben darf. Zwischen Abfragen stehen 1 oder 2 Leerzeilen. Operatoren lassen sich ohne Leerzeichen setzen (a=b), AND und OR stehen am Anfang oder am Ende der Zeile.
Was der Formatter nicht leistet
Er ändert Leerraum und die Schreibweise von Schlüsselwörtern, sonst nichts. Er führt das SQL nicht aus, kennt deine Tabellen nicht und sagt nicht, ob die Abfrage stimmt. Kommentare bleiben erhalten, Zeichenketten in Anführungszeichen werden nicht angefasst. Einen Block kannst du mit /* sql-formatter-disable */ und /* sql-formatter-enable */ aussparen. Gespeicherte Prozeduren und ein anderes Trennzeichen als ; unterstützt die Bibliothek nicht. Eingaben über 2.000.000 Zeichen lehnt das Tool mit einer Meldung ab.
Was mit deinem SQL passiert
Es bleibt auf deinem Gerät. Die Bibliothek zum Formatieren gehört zum Code der Seite und läuft im Browser. Beim Formatieren geht keine Anfrage hinaus; im Netzwerk-Tab deines Browsers siehst du das selbst. Kopieren nutzt die Zwischenablage, der Download erzeugt eine Datei auf deinem Rechner.