SQL Format

Fügen Sie Ihr SQL in das Feld unten ein und nutzen Sie die verfügbaren Optionen, um es zu formatieren. SQL-Format wurde von Datenbankadministratoren nach Industrie- und Big-Tech-Standards entwickelt. Viel Spaß!

Formatierungsoptionen
Zeilen: 1 Zeichen: 0 Z 1, Sp 1 SQL · UTF-8

Was SQL Format ist und für wen es gedacht ist

SQL Format ist ein kostenloser Online-Formatierer, der gedrängtes, einzeiliges oder uneinheitlich eingerücktes SQL in ein sauberes, vorhersehbares Layout bringt. Jede Klausel beginnt in einer eigenen Zeile, Spaltenlisten werden mit einem Eintrag pro Zeile aufgeteilt, Joins und ihre Bedingungen werden unter der Tabelle eingerückt, zu der sie gehören, und verschachtelte Abfragen werden innerhalb ihrer Klammern eingerückt.

Es ist für Menschen gemacht, die den ganzen Tag SQL lesen: Entwickler, die einen Pull Request prüfen, DBAs, die eine aus einem Log mitgeschnittene langsame Abfrage entwirren, Analysten, die einen Bericht vor dem Teilen aufräumen, und alle, die eine 300-zeilige Anweisung geerbt haben, die in einer einzigen Zeile steht. Das Layout folgt Konventionen, die Datenbankteams seit Langem verwenden, und mit den Optionen unten können Sie es an den Stil Ihres eigenen Teams anpassen.

So verwenden Sie den Formatierer

  1. Fügen Sie Ihr SQL in den Editor ein oder tippen Sie es ein. Sie können mehrere Anweisungen auf einmal einfügen; sie werden an den Semikolons getrennt und nacheinander formatiert.
  2. Passen Sie bei Bedarf die Optionen an: Einrückungstiefe, maximale Zeilenbreite, Position der Kommas, Groß-/Kleinschreibung der Schlüsselwörter und ob öffnende Klammern in eine eigene Zeile kommen.
  3. Klicken Sie auf Formatieren oder drücken Sie Ctrl + Enter (⌘ + Enter auf dem Mac). Das formatierte SQL ersetzt den Text im Editor.
  4. Mit Kopieren legen Sie das Ergebnis in die Zwischenablage, mit Leeren fangen Sie von vorn an. Die Statusleiste zeigt die Anzahl der Zeilen und Zeichen sowie die Position Ihres Cursors.

Die Formatierungsoptionen

Fünf Optionen steuern die Ausgabe. Die Standardwerte (Einrückung mit 4 Leerzeichen, 120 Spalten, nachgestellte Kommas, Schlüsselwörter in Großbuchstaben, Klammern in derselben Zeile) passen für die meisten Teams; jede Option hat eine eigene Seite mit weiteren Beispielen.

Leerzeichen pro Einrückung

Leerzeichen pro Einrückung legt fest, wie viele Leerzeichen jede Verschachtelungsebene verwendet, ab 0 aufwärts; der Standardwert ist 4. Tabulatorzeichen in Ihrer Eingabe werden durch ebenso viele Leerzeichen ersetzt, außer innerhalb von String-Literalen und Bezeichnern in Anführungszeichen. Das Beispiel unten verwendet 2.

Nachher, formatiert mit SQL Format
Optionen: Leerzeichen pro Einrückung 2 · Maximale Spaltenbreite 120 · Kommas: Danach · Schlüsselwörter: Großbuchstaben · Klammern in neuer Zeile: nein
SELECT c.name,
  SUM(o.total) AS revenue
FROM customers c
  JOIN orders o
    ON  o.customer_id = c.id
WHERE o.status = 'PAID'
GROUP BY c.name

Mehr dazu: Option „Leerzeichen pro Einrückung“

Maximale Spaltenbreite

Maximale Spaltenbreite ist die Zeilenbreite, die der Formatierer anstrebt (Standard: 120). Lange Ausdrücke werden auf mehrere Zeilen umbrochen, um sie einzuhalten; 0 schaltet den Umbruch ab.

Nachher, formatiert mit SQL Format
Optionen: Leerzeichen pro Einrückung 4 · Maximale Spaltenbreite 60 · Kommas: Danach · Schlüsselwörter: Großbuchstaben · Klammern in neuer Zeile: nein
SELECT order_id,
    quantity * unit_price * (1 - discount_rate) * (1 +
      tax_rate) + shipping_fee - loyalty_credit AS
      amount_due
FROM order_lines
WHERE order_id = 42

Mehr dazu: Option „Maximale Spaltenbreite“

Kommas

Kommas wählt zwischen nachgestellten Kommas (nach jedem Eintrag, der Standard) und vorangestellten Kommas (am Anfang der nächsten Zeile). Vorangestellte Kommas machen es leicht, eine Spalte auszukommentieren, und erzeugen kleinere Diffs, wenn Sie am Ende eine hinzufügen.

Nachher, formatiert mit SQL Format
Optionen: Leerzeichen pro Einrückung 4 · Maximale Spaltenbreite 120 · Kommas: Davor · Schlüsselwörter: Großbuchstaben · Klammern in neuer Zeile: nein
SELECT id
    ,email
    ,country_code
    ,created_at
FROM customers

Mehr dazu: Option „Kommas“

Schlüsselwörter

Schlüsselwörter schreibt SQL-Schlüsselwörter wie SELECT, FROM und JOIN in Großbuchstaben (Standard) oder Kleinbuchstaben. Zeichenkettenliterale und Kommentare bleiben so, wie Sie sie geschrieben haben.

Nachher, formatiert mit SQL Format
Optionen: Leerzeichen pro Einrückung 4 · Maximale Spaltenbreite 120 · Kommas: Danach · Schlüsselwörter: Kleinbuchstaben · Klammern in neuer Zeile: nein
select id,
    name
from products
where price > 100
order by name

Mehr dazu: Option „Schlüsselwörter“

Klammern in neuer Zeile

Klammern in neuer Zeile verschiebt die öffnende Klammer eines Blocks, etwa einer Unterabfrage nach IN, eines CTE-Rumpfs oder einer über mehrere Zeilen aufgeteilten Liste, in eine eigene Zeile, statt sie am Ende der vorherigen Zeile zu belassen.

Nachher, formatiert mit SQL Format
Optionen: Leerzeichen pro Einrückung 4 · Maximale Spaltenbreite 120 · Kommas: Danach · Schlüsselwörter: Großbuchstaben · Klammern in neuer Zeile: ja
SELECT name
FROM customers
WHERE id IN
(
    SELECT customer_id
    FROM orders
    WHERE total > 500
)

Mehr dazu: Option „Klammern in neuer Zeile“

Welche SQL-Dialekte der Formatierer versteht

Der Formatierer ist nicht an eine einzelne Datenbank gebunden. Er verarbeitet das SQL, das die großen Datenbank-Engines gemeinsam haben: SELECT mit Joins, Unterabfragen und CASE, INSERT, UPDATE, DELETE, gängiges DDL wie CREATE TABLE und CREATE VIEW sowie Kommentare in den Formen -- und /* */, die erhalten bleiben.

Für PostgreSQL gibt es zusätzliche Unterstützung: ::-Casts, $1-Parameter und Dollar-Quoting-Rümpfe $$ … $$, deren PL/pgSQL Block für Block gegliedert wird. MySQL-Bezeichner in Backticks und SQL-Server-Bezeichner in eckigen Klammern [bracket] bleiben unverändert erhalten. Es gibt keine Dialektauswahl, daher wird sonstige Syntax, die für eine bestimmte Datenbank spezifisch ist, etwa das Batch-Trennzeichen GO von SQL Server, nicht gesondert behandelt. Die Dialekt-Leitfäden erklären die Unterschiede.

Was mit Ihrem SQL geschieht

Wenn Sie auf Formatieren klicken, wird das SQL im Editor per HTTPS an unseren Server gesendet, im Arbeitsspeicher formatiert und direkt in der Seite zurückgegeben. Es wird weder in eine Datenbank noch in eine Datei oder ein Log geschrieben und nicht an Analyse- oder Werbepartner weitergegeben. Vermeiden Sie es trotzdem, echte Passwörter, Schlüssel oder personenbezogene Daten in irgendein Online-Tool einzufügen; Einzelheiten finden Sie auf der Datenschutzseite.

Datenschutzhinweise

Häufig gestellte Fragen

Wird mein SQL irgendwo gespeichert?

Nein. Das SQL wird für diese eine Anfrage im Arbeitsspeicher des Servers formatiert und in der Antwort zurückgegeben. Es wird nicht in einer Datenbank, einer Datei oder einem Log gespeichert.

Kann das Formatieren verändern, was meine Abfrage tut?

Es ist so ausgelegt, dass nur Leerraum, Zeilenumbrüche und die Groß-/Kleinschreibung von Schlüsselwörtern geändert werden, niemals die Reihenfolge oder Logik Ihres SQL. Wie bei jedem Tool, das Code umschreibt, sollten Sie das Ergebnis lesen, bevor Sie es auf einer Produktionsdatenbank ausführen. Beachten Sie, dass die Schreibweise der Schlüsselwörter auch für Namen gilt, die SQL-Schlüsselwörter sind, etwa eine Spalte namens month.

Mit welchen Datenbanken funktioniert es?

Es formatiert das SQL, das PostgreSQL, MySQL, SQL Server, Oracle, Db2 und SQLite gemeinsam haben, mit zusätzlicher Behandlung von PostgreSQL-Casts, -Parametern und PL/pgSQL-Rümpfen. Es gibt keine Dialektauswahl.

Gibt es eine Größenbeschränkung?

Ja. Eine einzelne Anfrage darf bis zu 20.000 Zeilen SQL enthalten.

Kann ich mehrere Anweisungen auf einmal formatieren?

Ja. Trennen Sie sie mit Semikolons; jede Anweisung wird für sich formatiert, und die ursprüngliche Reihenfolge bleibt erhalten.

Kostet es etwas oder brauche ich ein Konto?

Nein. Der Formatierer ist kostenlos nutzbar, und es ist keine Registrierung nötig.

Alle häufig gestellten Fragen ansehen

Leitfäden und Referenzen

Über das Tool hinaus behandeln diese Leitfäden die Konventionen hinter gut lesbarem SQL: