SQL-Formatter & Minifier – Vollständige Dokumentation, Best Practices & Integrationen
Der Zerlo SQL-Formatter & Minifier macht SQL sofort lesbar (Beautify) oder kompakt (Minify). Du steuerst Indent (2/4/8 Spaces), Keyword-Case (UPPER/lower/Preserve) und im Bereich Advanced Kommentar-Strip sowie Semikolon erzwingen. Über Schnellzugriff stehen Beispiel-Snippets bereit, und mit Self-Test prüfst du das Verhalten in Sekunden. Die Seite ist hier erreichbar: zerlo.net/formattersql.
Inhalt
- Schnellstart
- Funktionen im Überblick
- Schnellzugriff-Beispiele (Use-Cases)
- Advanced-Optionen (Details & Stolperfallen)
- Typische Anwendungskategorien (12 Szenarien)
- Integration: Website, iFrame, Teams
- Optionale JSON-API (mit Beispielen)
- Self-Test (Schritt für Schritt)
- Pro-Tipps, Performance & Sicherheit
- Dialekt-Hinweise & Grenzen
- Troubleshooting & FAQ
- Jetzt ausprobieren
1) Schnellstart
- Öffne zerlo.net/formattersql.
- Füge links dein SQL ein oder tippe es.
- Wähle den Modus: Beautify (lesbar) oder Minify (kompakt).
- Stelle Indent (2/4/8) und Keyword-Case (UPPER/lower/Preserve) ein.
- Optional: Kommentare entfernen, Semikolon erzwingen.
- Klicke Formatieren – das Ergebnis erscheint rechts, inkl. Kopieren und Als .sql speichern.
- Unter Self-Test kannst du die wichtigsten Regeln automatisch gegentesten.
2) Funktionen im Überblick
- Beautify: Umbrüche & Einrückung für
SELECT,FROM,JOIN,WHERE,GROUP BY,HAVING,ORDER BY,LIMIT,UNION,WITH,CASE… - Minify: Entfernt unnötige Whitespaces; ideal für Transport/Embedding. Optional mit Kommentar-Strip.
- Keyword-Case: UPPER, lower oder Preserve (Strings/Identifiers bleiben unverändert).
- Indent-Profile: 2, 4 oder 8 Spaces – teamweit konsistent.
- Advanced: Kommentare entfernen (ein-/mehrzeilig) & Semikolon erzwingen.
- Schnellzugriff: Vorgegebene Beispiele: einfaches
SELECT, JOIN mit Aggregat, CASE & Subquery, CTE + Window, INSERT … RETURNING, UPDATE mit CASE, DELETE + EXISTS. - Self-Test: 1-Klick-Verifikation: Beautify-Regeln, Minify-Verhalten, Indent-Wechsel, Keyword-Case, Semikolon.
- Praktische Buttons: Formatieren, JSON-API (POST) hier testen, Kopieren, Als .sql speichern.
- Ausgaben: Ergebnis-Pane, Self-Test-Pane, API-Antwort (JSON).
3) Schnellzugriff-Beispiele (Use-Cases)
Diese Beispiele decken die häufigsten Muster ab und sind ideal als Ausgangspunkt.
SELECT id, name FROM products WHERE status = 'active';
SELECT c.id, c.title, COUNT(p.id) AS products
FROM categories c
LEFT JOIN products p ON p.category_id = c.id
GROUP BY c.id, c.title
ORDER BY products DESC;
SELECT u.id, u.email,
CASE
WHEN o.total >= 1000 THEN 'gold'
WHEN o.total >= 200 THEN 'silver'
ELSE 'bronze'
END AS tier
FROM users u
LEFT JOIN LATERAL (
SELECT SUM(total) AS total
FROM orders
WHERE user_id = u.id
) o ON TRUE;
WITH ranked AS (
SELECT id, customer_id, total,
ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY total DESC) AS rn
FROM orders
)
SELECT * FROM ranked WHERE rn = 1;
INSERT INTO users(email, role)
VALUES ('[email protected]', 'editor')
RETURNING id, email;
UPDATE accounts
SET status = CASE
WHEN balance < 0 THEN 'overdue'
WHEN balance = 0 THEN 'zero'
ELSE 'ok'
END
WHERE active = 1;
DELETE FROM sessions s
WHERE EXISTS (
SELECT 1 FROM users u
WHERE u.id = s.user_id AND u.deleted_at IS NOT NULL
);
4) Advanced-Optionen (Details & Stolperfallen)
- Kommentare entfernen: Entfernt
-- ...und/* ... */. Gut für „sauberen“ Transport (CI, Embedding). Achtung: Dokumentationskommentare gehen verloren – vorher ggf. extrahieren/archivieren. - Semikolon erzwingen: Fügt
;hinzu, wenn am Ende keins vorhanden ist – verhindert Parser-Fehler in Skripts. Wenn bereits;existiert, wird nichts dupliziert.
5) Typische Anwendungskategorien (12 Szenarien)
- Code-Reviews: Einheitliches Layout beschleunigt Reviews und verhindert Stil-Diskussionen.
- Debugging: Komplexe
JOIN/CASEwerden sofort visuell greifbar. - Wissensaustausch: Lesbares SQL für Wiki/Confluence/README.
- Migrationen & Skripte: Semikolon-Sicherheit, eindeutige Blöcke.
- API-Embedding: Minify + Kommentar-Strip, um SQL in Apps/Services einzubetten.
- BI/Reporting: Abfragen aus BI-Tools aufräumen, bevor sie geteilt werden.
- Learning & Schulung: CTEs/Window-Funktionen strukturiert zeigen.
- Refactoring: Erst beautify, dann Teilbereiche isolieren/optimieren.
- Fehlerreproduktion: Klarer strukturierte Queries für Support-Tickets.
- Style-Guide-Durchsetzung: Team-Standard (Indent/Case) konsequent anwenden.
- Vorlagen: „Schnellzugriff“ als Basis für neue Abfragen.
- Release-Vorbereitung: Minify für stabile, transportable Artefakte.
6) Integration in Website/Teams
A) Direkt nutzen
Hier geht’s zum Tool: zerlo.net/formattersql
B) iFrame-Einbettung (Intranet/Backoffice)
<iframe src="https://zerlo.net/formattersql" title="SQL Formatter" width="100%" height="900" style="border:0; border-radius:12px;"></iframe>
C) Team-Style-Guide (Basis)
- Indent: 2 oder 4 Spaces (durchgängig).
- Keyword-Case: UPPER (Strings/Identifier bleiben unverändert).
- JOINs: Bedingungen direkt an
JOIN ... ON; keine versteckten Filter inWHERE. - CASE: Jede
WHEN/THENin eigene Zeile; sinnvollesELSE. - Semikolon: In Skripten immer setzen.
7) Optionale JSON-API
Du kannst die Formatierung in Tools/CI/CD automatisieren. Ein Schlank-Beispiel:
POST https://zerlo.net/formattersql?api=1
Content-Type: application/json
{
"sql": "select id,name from users where id=1",
"mode": "beautify",
"options": { "indent": 4, "keywordCase": "upper", "stripComments": false, "ensureSemicolon": true }
}
{
"ok": true,
"result": "SELECT id, name\nFROM users\nWHERE id = 1;",
"stats": { "ms": 4, "inLen": 43, "outLen": 47 }
}
// Node.js (fetch)
const res = await fetch("https://zerlo.net/formattersql?api=1", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
sql: "SELECT * FROM orders WHERE created_at >= NOW() - INTERVAL '7 days';",
mode: "beautify",
options: { indent: 2, keywordCase: "upper", stripComments: true, ensureSemicolon: true }
})
});
const data = await res.json();
console.log(data.result);
<?php
// PHP
$payload = [
"sql" => "SELECT COUNT(*) FROM products;",
"mode" => "minify",
"options" => [ "indent" => 2, "keywordCase" => "preserve", "stripComments" => true, "ensureSemicolon" => true ]
];
$ch = curl_init("https://zerlo.net/formattersql?api=1");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true
]);
$resp = curl_exec($ch);
curl_close($ch);
echo $resp;
8) Self-Test (Schritt für Schritt)
- Klicke im Tool unten auf Self-Test – es werden drei Kernfälle automatisch geprüft.
- Beautify-Case: Keywords UPPER, klare Umbrüche, sauberes Indent.
- Minify-Case: Kommentare entfernt (falls Option aktiv), kompakte Ausgabe.
- Indent-Case: Sichtbarer Wechsel zwischen 2/4/8 Spaces.
- Ergebnis erscheint im Self-Test-Pane; bei Abweichungen: Optionen prüfen und ggf. Modus wechseln.
9) Pro-Tipps, Performance & Sicherheit
- Große Skripte: Nach „Beautify“ in thematische Blöcke teilen (CTEs, DDL vs. DML), dann einzeln versionieren.
- Review-Tempo: Nutze „Schnellzugriff“ als Standard-Sklett; vermeidet Wildwuchs bei neuen Queries.
- Fehlerquellen minimieren: „Semikolon erzwingen“ in Migrations-Pipelines aktivieren.
- Strings bleiben unverändert: Der Formatter editiert keine Inhalte in Quotes; Business-Logik bleibt sicher.
- Privatsphäre: Keine Ausführung von SQL – reiner Text. Sensible Inhalte nicht dauerhaft in fremden Tools speichern.
- Vergleiche erleichtern: Beautify, dann mit Git-Diff vergleichen – Unterschiede springen ins Auge.
10) Dialekt-Hinweise & Grenzen
- MySQL/MariaDB: Standard-Keywords & Funktionen werden gut erkannt.
- PostgreSQL/SQLite: CTEs/Window-Funktionen werden sauber eingerückt;
RETURNINGbietet sich an. - Exoten: Sehr spezielle Dialekt-Syntax (z. B. proprietäre Hints) bleibt inhaltlich bestehen, Formatierung erfolgt generisch.
- Keine semantische Analyse: Der Formatter „versteht“ Logik nicht – er strukturiert Text. Syntaxfehler bleiben Syntaxfehler.
11) Troubleshooting & FAQ
„Es ändert sich nichts?“ – Prüfe Modus & Optionen; Eingabe darf nicht leer sein.
„Doppelte Semikola?“ – Option „erzwingen“ + vorhandenes ;: Option deaktivieren.
„Kommentare wurden nicht entfernt“ – Kommentar-Strip aktivieren oder Modus auf „Minify“ stellen.
„Sehr lange Abfragen laggen im Browser“ – Große Blöcke nacheinander formatieren oder API nutzen.
„Keywords in Strings geändert?“ – Sollte nicht passieren; prüfe, ob es echte Strings waren (Quotes, keine Backticks).
12) Jetzt ausprobieren
Starte hier: zerlo.net/formattersql