SQL-Formatierer und -Minifier
Mach eine einzeilige SQL-Abfrage lesbar: Klauseln in neuen Zeilen, eingerückte Spalten und Bedingungen, Schlüsselwörter in Großbuchstaben. Oder minifiziere sie. Nichts wird gesendet.
- Kostenlos
- Ohne Anmeldung
- Kein Datei-Upload
- Windows, Mac, Android, iPhone
Werkzeug wird geladen…
Über dieses Werkzeug
Füge eine unlesbare SQL-Abfrage ein, von einem ORM erzeugt oder aus einem Log kopiert: Sie wird mit einer Klausel pro Zeile, eingerückten Spalten und Bedingungen sowie verschachtelten Unterabfragen neu formatiert. Das Werkzeug funktioniert mit MySQL, PostgreSQL, SQLite und SQL Server und lässt Strings und Kommentare unberührt.
Wann es hilft
Eine erzeugte Abfrage lesen
ORMs (Prisma, Hibernate, Doctrine, Eloquent) und Slow-Query-Logs erzeugen einzeilige Abfragen. Formatiert werden ihre Joins und Bedingungen lesbar, was hilft, ein Performanceproblem zu verstehen.
Ein Code-Review vorbereiten
Eine gut eingerückte Abfrage in einer Migration oder einem Bericht ist leichter zu lesen und zu kommentieren. Großgeschriebene Schlüsselwörter trennen die Struktur optisch von Tabellen- und Spaltennamen.
Eine Abfrage kürzen
Der Minify-Modus entfernt Kommentare und überflüssige Leerzeichen, damit eine Abfrage in einen Code-String, eine Umgebungsvariable oder ein Werkzeug passt, das nur eine Zeile akzeptiert.
So funktioniert's
- Füge die SQL-Abfrage ein.
- Wähle Formatieren oder Minifizieren.
- Kopiere oder lade das Ergebnis herunter.
So funktioniert es
Die Abfrage wird in Tokens zerlegt: Wörter, Zahlen, Strings in einfachen Anführungszeichen, Bezeichner in doppelten Anführungszeichen, eckigen Klammern oder Backticks, Kommentare und Symbole. Strings und Kommentare werden unverändert übernommen, sodass sich die Bedeutung der Abfrage nicht ändert.
Hauptklauseln (SELECT, FROM, WHERE, JOIN, GROUP BY, ORDER BY…) beginnen eine neue Zeile; SELECT-Spalten, AND- und OR-Bedingungen sowie ON-Klauseln von Joins werden eingerückt. Eine Klammer, die eine Unterabfrage öffnet, erhöht die Einrückungsebene, während Funktionsaufrufe wie COUNT(*) in der Zeile bleiben.
Tipps für beste Ergebnisse
- Halte in einem Projekt dieselbe Schreibweise ein: Schlüsselwörter groß und Namen klein ist am gängigsten.
- Eine formatierte Abfrage verrät schnell ein kartesisches Produkt: Ein Join ohne ON fällt sofort auf.
- Entferne vor dem Einfügen einer Produktionsabfrage sensible Werte (E-Mails, Tokens) aus den Bedingungen.
- Um eine langsame Abfrage zu verstehen, formatiere sie und lass sie dann in deiner Datenbank durch EXPLAIN laufen.
- Bevorzuge im Code parametrisierte Abfragen statt verketteter Werte: Das schützt vor SQL-Injection.
Häufige Probleme und Lösungen
Ein Teil der Abfrage bleibt in einer Zeile
Nicht alle Stored Procedures oder sehr dialektspezifischen Syntaxen werden erkannt. Die Abfrage bleibt korrekt: Es fehlen nur Zeilenumbrüche.
Ein Spaltenname wurde großgeschrieben
Manche Namen stimmen mit einem Schlüsselwort überein (date, key, text). Deaktiviere die Großschreibung oder setze den Namen in der Abfrage in Anführungszeichen.
Die Leerzeichen in meinem String haben sich geändert
Das kann nicht passieren: Strings in einfachen Anführungszeichen werden exakt übernommen. Prüfe, ob in der Originalabfrage ein Anführungszeichen nicht geschlossen ist.
Häufige Fragen
Welche SQL-Dialekte werden unterstützt?
Die gemeinsame Syntax von MySQL, MariaDB, PostgreSQL, SQLite, SQL Server und Oracle. Bezeichner in Backticks, eckigen Klammern oder doppelten Anführungszeichen werden erkannt.
Wird die Abfrage ausgeführt?
Nein. Sie wird nur in deinem Browser formatiert; keine Datenbank wird kontaktiert, nichts wird gesendet.
Kann das Formatieren meine Abfrage kaputt machen?
Nein: Nur Leerzeichen, Zeilenumbrüche und die Schreibweise der Schlüsselwörter ändern sich. SQL ignoriert diese Unterschiede.
Kann ich mehrere Abfragen auf einmal formatieren?
Ja, trenne sie mit Semikolons: Jede beginnt in einer neuen Zeile.
Ähnliche Suchanfragen
Immer noch ein Problem?
Frag im Forum: Kategorie, Werkzeug, Datenblatt deines Geräts und Testergebnis werden automatisch ausgefüllt.