MySQL-Formatter
Formatiere MySQL-Abfragen und Skripte nach MySQL-Regeln für Bezeichner in Backticks, Backslash-Escapes in Strings, #-Kommentare und DELIMITER-Blöcke. Jede Klausel beginnt in einer eigenen Zeile, Spalten und Bedingungen werden eingerückt, und MySQL-Klauseln wie ON DUPLICATE KEY UPDATE bleiben zusammen. Nicht geschlossene Strings, Kommentare und Klammern werden mit Zeile und Spalte gemeldet. So können Entwickler Datenbankcode leichter lesen und überprüfen.
Häufig gestellte Fragen
Welche MySQL-Syntax versteht der Formatter?
Er erkennt Bezeichner in Backticks, Strings in einfachen und doppelten Anführungszeichen mit Backslash-Escapes und doppelten Anführungszeichen, Hex-, Bit- und nationale Literale wie X'FF', B'101' und N'text', Zeichensatz-Einleitungen wie _utf8mb4'text' sowie @user-Variablen. Der Inhalt eines Literals bleibt exakt so, wie er geschrieben wurde.
Wie werden Kommentare behandelt?
Hash-Kommentare (#) und Kommentare mit doppeltem Bindestrich (--) bleiben an Ort und Stelle. Wie bei MySQL beginnt ein doppelter Bindestrich nur dann einen Kommentar, wenn ein Leerzeichen oder Zeilenumbruch folgt. Daher bleibt a--1 ein Ausdruck. Ausführbare Versionskommentare bleiben unverändert.
Wie wird die Abfrage angeordnet?
Hauptklauseln wie SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY und LIMIT beginnen jeweils in einer eigenen Zeile; ihr Inhalt wird darunter eingerückt. Ausgewählte Spalten stehen jeweils in einer eigenen Zeile, AND und OR beginnen neue Zeilen, und jede Join-Klausel erhält eine eigene Zeile.
Werden MySQL-spezifische Klauseln unterstützt?
Ja. ON DUPLICATE KEY UPDATE, LOCK IN SHARE MODE, FOR UPDATE und FOR SHARE bleiben als eine Klausel zusammen, statt auf mehrere Zeilen verteilt zu werden.
Kann ich gespeicherte Prozeduren und Trigger formatieren?
Ja. DELIMITER-Befehle bleiben in eigenen Zeilen, das benutzerdefinierte Trennzeichen wie // oder $$ beendet die Anweisung, und BEGIN- und END-Blöcke mit IF, WHILE und LOOP werden eingerückt.
Ändert das die Groß- und Kleinschreibung von Schlüsselwörtern?
Nein. Schlüsselwörter, Funktionsnamen und Bezeichner behalten die Schreibweise, die du verwendet hast; select und SELECT bleiben also beide unverändert. Nur Leerzeichen und Zeilenumbrüche ändern sich.
Prüft der Formatter, ob meine Abfrage gültig ist?
Er prüft, ob Strings, zitierte Bezeichner und Blockkommentare geschlossen sind und ob Klammern ausgeglichen sind, und meldet Probleme mit Zeile und Spalte. Die Abfrage wird nicht ausgeführt und Tabellennamen sowie die vollständige MySQL-Grammatik werden nicht geprüft.
Kann ich die Einrückung ändern?
Ja. Wähle pro Ebene 2 oder 4 Leerzeichen oder Tabulatoren. Kurze Listen in Klammern bleiben in einer Zeile, längere Listen und Unterabfragen werden als eingerückter Block dargestellt.
Wie groß darf die Eingabe sein?
Bis zu 1 MB SQL pro Anfrage, mit bis zu 128 KB in einer einzelnen Anweisung. Skripte mit vielen Anweisungen werden Anweisung für Anweisung formatiert und durch Leerzeilen getrennt.
Wird meine SQL gespeichert?
Nein. Abfragen werden im Arbeitsspeicher formatiert und sofort zurückgegeben. Sie werden nie gespeichert; protokolliert wird nur die Größe der Anfragen.