SQL Formatieren und Minifizieren - lange Abfragen lesbar machen
SQL formatieren und minifizieren
Was dieses Werkzeug leistet
Die Abfrage, die Sie verstehen müssen, ist selten die, die Sie geschrieben haben. Sie kommt aus einem Log, einem ORM, der Nachricht einer Kollegin: eine Zeile, vier Joins, ein Where, dessen Ende Sie nicht finden. Diese Seite verteilt sie auf Zeilen, damit die Form sichtbar wird - und legt sie wieder auf eine Zeile, wenn etwas anderes sie lesen muss.
So funktioniert es
- 1 Abfrage einfügen - eine Anweisung oder ein ganzes Skript.
- 2 Einrückung wählen, dann Formatieren oder Minifizieren drücken.
- 3 Der Text ändert sich im selben Feld - kopieren oder Rückgängig drücken.
Ein Kommentar in einer Zeile wird ohne Zeilen zur Gefahr
Ein „--“-Kommentar läuft bis zum Zeilenende. Minifizieren entfernt Zeilenumbrüche, ein stehen gelassener Kommentar würde also alles Folgende verschlucken: die Abfrage läuft weiter, sie hört nur stillschweigend auf halbem Weg auf. Deshalb entfernt das Minifizieren hier Zeilenkommentare vollständig - und deshalb bleibt „--“ innerhalb einer Zeichenkette genau dort, denn dort ist es Daten, kein Kommentar.
Anführungszeichen und verdoppelte Anführungszeichen
In SQL wird ein Anführungszeichen in einer Zeichenkette durch Verdoppeln maskiert: 'O''Brien'. Ein Werkzeug, das die Zeichenkette beim zweiten Anführungszeichen schließt, liest den Rest des Namens als Code, und ab da ist jedes gefundene Schlüsselwort eingebildet. Dasselbe gilt für maskierte Bezeichner: `order`, "group", [limit] sind Namen, und ein Schlüsselwort in einem Namen ist keines.
Es schreibt Ihre Abfrage nie um
Schlüsselwörter werden nicht großgeschrieben, Klammern nicht vereinfacht, Aliase nicht umbenannt. Nur Leerraum bewegt sich. Das zählt, weil eine formatierte Abfrage meist in eine Datei zurückgeht, die ein Team prüft: ein Diff voller Schreibweisenänderungen verbirgt die eine Zeile, die sich wirklich geändert hat - und kleingeschriebene Schlüsselwörter sind ein Hausstil, kein Fehler.
Formatieren ist kein Prüfen
Diese Seite verbindet sich nie mit einer Datenbank, sie kann also nicht wissen, ob eine Tabelle existiert, ob Ihr Join stimmt oder ob die Abfrage langsam wird. Sie liest Text und verschiebt Leerraum. Was sie Ihnen gibt, ist die Form - und eine Abfrage, deren Form Sie sehen, ist eine, über die Sie nachdenken können.