SQL-Formatierer

Formatiert SQL-Text für bessere Lesbarkeit.

Vorher

Nachher

Was ist ein SQL-Formatierer?

Eine lange SQL-Anweisung, in eine Zeile gepresst, verrät nichts über ihren Aufbau. Dieses Werkzeug setzt Zeilenumbrüche an Schlüsselwörtern wie SELECT, FROM, WHERE und JOIN und rückt verschachtelte Unterabfragen ein, sodass die Gestalt der Anweisung mit dem Auge verfolgbar wird. Die Formatierung ändert die Bedeutung nie.

Der gewählte Dialekt beeinflusst das Ergebnis. MySQL, PostgreSQL, Oracle und SQL Server haben je eigene Syntax – wählen Sie also den passenden zu Ihrer Datenbank. Beachten Sie außerdem: SQL mit einem Syntaxfehler lässt sich nicht korrekt zerlegen und kommt möglicherweise unformatiert zurück. Prüfen Sie in diesem Fall zuerst die Gültigkeit des SQL selbst.

So formatieren Sie SQL

  1. SQL einfügen Fügen Sie das zu formatierende SQL in das Eingabefeld ein. Trennen Sie Anweisungen mit Semikolons, dann lassen sich mehrere gemeinsam verarbeiten.
  2. Dialekt wählen Wählen Sie den zu Ihrer Datenbank passenden. Sind Sie unsicher, formatiert Standard-SQL dennoch die große Mehrheit der Syntax.
  3. Einrückung und Groß-/Kleinschreibung einstellen Passen Sie die Einrücktiefe der Konvention Ihres Teams an. Aktivieren Sie die Großschreibung, richten sich die Schlüsselwörter aus und die Anweisung liest sich leichter.
  4. Formatieren und Ergebnis prüfen Ein Druck auf «Formatieren» zeigt das Ergebnis, bereit zum direkten Einfügen in ein Code-Review oder eine Spezifikation.

Tipps für die Nutzung

  • SQL-Schlüsselwörter wie SELECT, FROM, WHERE und JOIN werden automatisch umgebrochen und ausgerichtet, und verschachtelte Unterabfragen werden korrekt eingerückt.
  • Das Aktivieren von „Schlüsselwörter großschreiben" wandelt alle Schlüsselwörter automatisch in Großbuchstaben um und verbessert die Lesbarkeit.
  • Passen Sie die Einrückungsgröße an, um den Coding-Style-Richtlinien Ihres Teams zu entsprechen.
  • Das Einfügen des formatierten SQL in Code-Reviews oder Dokumentationen erleichtert das Lesen erheblich.
  • Unterstützt wichtige SQL-Dialekte, darunter MySQL, PostgreSQL und Oracle.

Wann ein SQL-Formatierer nützlich ist

Übergebenes SQL entschlüsseln

Formatieren Sie eine einzeilige Anweisung aus einem Protokoll oder Anwendungsquelltext, und der Aufbau der Verknüpfungs- und Filterbedingungen wird auf einen Blick klar.

Vor einem Code-Review aufräumen

Reichen Sie es mit bereits ausgerichteter Einrückung ein, kann sich die prüfende Person auf die Logik statt auf das Layout konzentrieren. Auch der Diff liest sich leichter.

SQL in eine Spezifikation aufnehmen

Fügen Sie formatiertes SQL in ein Dokument ein, und Lesende können dem Aufbau folgen. Mit Großschreibung liest es sich auch im Druck gut.

Die Gestalt einer langsamen Abfrage analysieren

Weil Sie die Tiefe der Unterabfragen und die Zahl der Verknüpfungen sehen, können Sie schon vor dem Lesen des Ausführungsplans eine Vermutung bilden.

Begriffe rund um SQL

SQL-Dialekt
Die syntaktischen Unterschiede zwischen Datenbankprodukten. Jedes Produkt ergänzt Standard-SQL um eigene Erweiterungen – deshalb zählt die Auswahl beim Formatieren.
Unterabfrage
Eine Abfrage, die verschachtelt in einer anderen SQL-Anweisung steht. Je tiefer sie geht, desto schwerer liest sie sich – genau dort zahlt sich die Einrückung am meisten aus.
JOIN
Die Syntax, um Daten durch das Verknüpfen mehrerer Tabellen abzurufen. Verknüpfungsbedingungen werden leicht lang, daher bestimmt die Lage der Umbrüche die Lesbarkeit.
Vorbereitete Anweisung
Ein Verfahren, das eine Abfrage aufbaut und die Werte nachträglich einsetzt. Es ist die Grundlage jeder Abwehr von SQL-Injektion.
SQL-Injektion
Ein Angriff, der SQL-Fragmente in Eingabewerte mischt, um eine unbeabsichtigte Abfrage ausführen zu lassen. SQL per Zeichenkettenverkettung zu bauen lädt dazu ein.
Gespeicherte Prozedur
Eine auf der Datenbankseite hinterlegte Abfolge von Verarbeitungsschritten. Weil sie Steuerungssyntax enthält, kann sie außerhalb dessen liegen, was die Formatierung abdeckt.

Häufige Fragen

Neben Standard-SQL werden MySQL, PostgreSQL, Oracle (PL/SQL) und SQL Server (T-SQL) unterstützt. Wählen Sie im Dropdown den zu Ihrer Datenbank passenden Dialekt, um dialektspezifische Syntax korrekt zu formatieren.

Wenn der eingegebene SQL-Code Syntaxfehler enthält, kann der Formatierer ihn möglicherweise nicht korrekt verarbeiten. Überprüfen Sie zunächst mit einem Datenbank-Client, ob Ihr SQL gültig ist.

Sie können mehrere durch Semikolons getrennte SQL-Anweisungen einfügen, die dann gemeinsam formatiert werden. Gespeicherte Prozeduren und PL/SQL-Blocksyntax werden jedoch möglicherweise nicht vollständig unterstützt.
Tool-kun

Übrigens – 50 Jahre SQL: Eine Geschichte der relationalen Datenbanken

SQL entstand, als IBM „SEQUEL" auf Basis des relationalen Modells entwickelte, das E.F. Codd (IBM) in einem Artikel von 1970 vorschlug (aus Markengründen in SQL umbenannt). Es wurde 1986 von ANSI standardisiert und wird seitdem in unzähligen Datenbanken eingesetzt.

Einer der bekanntesten Sicherheitsvorfälle ist der SQL-Injection-Angriff. Der Sony-PSN-(PlayStation-Network-)Einbruch 2011 legte über 100 Millionen persönliche Datensätze offen, mit geschätzten Schäden von 171 Millionen US-Dollar. Er taucht weiterhin regelmäßig in der OWASP Top 10 auf, und die Verwendung von Prepared Statements gilt als grundlegende Gegenmaßnahme.

„WHERE 1=1" ist eine praktische Technik zum Aufbau dynamischer SQL-Abfragen, aber auch ein klassisches SQL-Injection-Beispiel. Die Möglichkeit, sich durch Eingabe von ' OR '1'='1 in ein Login-Formular ohne Passwort anzumelden, wird noch heute als kanonisches Beispiel in Sicherheitsschulungen verwendet.