SQL-Formatter

SQL online formatieren

Machen Sie aus einer langen Zeile eine lesbare Abfrage. Wählen Sie den passenden Dialekt und einen einheitlichen Stil für die nächste Code-Review.

Abfrage-EditorFormatierung im Browser · keine SQL-Ausführung
Beispiel laden
213 / 50.000 Zeichen

02 Formatiertes SQL

Die ursprüngliche Abfrage bleibt erhalten

SQL aus Logs für die Code-Review aufbereiten

Eine Abfrage aus einem Anwendungslog enthält oft alle Spalten, Joins und Filter in einer einzigen Zeile. Mit einem SQL-Formatter lassen sich diese Teile leichter voneinander unterscheiden. Einrückungen machen sichtbar, wo eine Unterabfrage beginnt und welche Bedingungen zusammengehören.

Fügen Sie die Abfrage ein, wählen Sie den Dialekt und stellen Sie zwei Leerzeichen, vier Leerzeichen oder Tabulatoren ein. Für Schlüsselwörter stehen Großschreibung, Kleinschreibung und die ursprüngliche Schreibweise zur Auswahl. Das Ergebnis erscheint neben dem unveränderten Ausgangstext. Nach Änderungen an Eingabe oder Optionen wird das alte Ergebnis gelöscht; formatieren Sie dann erneut.

Der Dialekt richtet sich nach der Quelle

Zur Auswahl stehen Standard-SQL, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle SQL, BigQuery und Snowflake. Der passende Dialekt hilft dem Formatter, Bezeichner in Backticks oder eckigen Klammern und datenbankspezifische Syntax zu erkennen.

Die Auswahl ist keine Konvertierung zwischen Datenbanken. Eine MySQL-Abfrage wird durch die Einstellung PostgreSQL nicht automatisch portierbar. Funktionen und Schema bleiben unverändert; Oracle SQL bedeutet ebenfalls keine allgemeine Unterstützung für gespeicherte Prozeduren.

Lesbare Abfragen sind leichter zu prüfen

Bei Aggregationen lassen sich WHERE und HAVING durch getrennte Abschnitte schneller vergleichen. CTEs und verschachtelte Abfragen profitieren von einheitlicher Einrückung. Ob die Bedingungen fachlich stimmen, kann die Formatierung jedoch nicht entscheiden.

Die Schreibweise erkannter Schlüsselwörter lässt sich ändern; Bezeichner, Funktionsnamen und Datentypen behalten ihre Groß- und Kleinschreibung. Parameter werden nicht mit Werten befüllt. Kommentare bleiben erhalten, können aber anders angeordnet werden. Prüfen Sie das Ergebnis vor dem Einsatz mit den Werkzeugen Ihrer Datenbank.

SQL-Beispiele mit Formatierung

Die Beispiele verwenden fiktive Daten, großgeschriebene Schlüsselwörter und zwei Leerzeichen Einrückung. Beim Laden im Editor wird der passende Dialekt ausgewählt.

JOIN und Aggregation

Bezahlte Bestellungen je Kunde zusammenfassen: Join-Bedingung, Zeilenfilter und Aggregatfilter werden getrennt lesbar.

SELECT
  c.id,
  c.name,
  count(o.id) AS order_count,
  sum(o.total) AS revenue
FROM
  customers c
  JOIN orders o ON o.customer_id = c.id
WHERE
  o.status = 'paid'
GROUP BY
  c.id,
  c.name
HAVING
  sum(o.total) > 1000
ORDER BY
  revenue DESC;
Zurück zum Formatter

CTE und Fensterfunktion

Eine PostgreSQL-CTE mit ROW_NUMBER ordnet Bestellungen innerhalb eines Kunden. Die Einrückung zeigt die verschachtelte Struktur.

WITH
  ranked_orders AS (
    SELECT
      id,
      customer_id,
      total,
      row_number() OVER (
        PARTITION BY
          customer_id
        ORDER BY
          created_at DESC
      ) AS position
    FROM
      orders
    WHERE
      created_at >= date '2024-01-01'
  )
SELECT
  customer_id,
  id,
  total
FROM
  ranked_orders
WHERE
  position = 1
ORDER BY
  customer_id;
Zurück zum Formatter

INSERT und Kommentare

MySQL-Beispiel mit Backticks, Kommentar und einem Semikolon innerhalb einer Zeichenkette. Der Text bleibt ein Datenwert.

-- Fictional seed data
INSERT INTO
  `products` (`sku`, `name`, `price`)
VALUES
  ('DEMO-01', 'Desk lamp; warm light', 29.95),
  ('DEMO-02', 'Reader''s notebook', 8.50);
Zurück zum Formatter

Häufige Fragen

Wie speichere ich das Ergebnis?

Kopieren Sie das formatierte SQL oder laden Sie es als formatted.sql herunter. Mit Ctrl+Enter beziehungsweise Command+Enter unter macOS können Sie die Formatierung per Tastatur starten.

Wird meine SQL-Abfrage übertragen?

Die Formatierung läuft in einem Web Worker im Browser. Das Werkzeug sendet keine Abfragen an eine Formatierungs-API, verbindet sich nicht mit einer Datenbank und speichert die Eingabe weder dauerhaft noch in der URL.

Prüft der Formatter Syntax und Performance?

Nein. Er ordnet Leerraum und die Schreibweise von Schlüsselwörtern. Tabellen, Spalten, Datentypen, Berechtigungen und Ausführungspläne werden nicht geprüft. Auch erfolgreich formatiertes SQL kann in Ihrer Datenbank ungültig sein.

Sind mehrere Anweisungen möglich?

Ja, gewöhnliche SQL-Anweisungen können durch Semikolons getrennt werden. Semikolons innerhalb erkannter Zeichenketten bleiben Teil der Daten. Eigene DELIMITER-Befehle, Prozeduren und klientenspezifische Skripte gehören nicht zum unterstützten Ablauf.

Warum schlägt die Formatierung fehl?

Prüfen Sie zuerst Dialekt, Anführungszeichen und Klammern. Template-Ausdrücke oder Code-Interpolation können unbekannt sein. Es gelten höchstens 50.000 Zeichen und zehn Sekunden pro Durchlauf. Teilen Sie große Skripte auf.

Was passiert mit Kommentaren und Platzhaltern?

Kommentare bleiben erhalten, ihre Position oder Abstände können sich ändern. Unterstützte dialektspezifische Platzhalter werden nicht ersetzt. Kommentare zum Deaktivieren des Formatters können Bereiche von der Formatierung ausnehmen.

SQL Formatter · GitHub

Zurück zum Formatter