SQL-Formatter & Minifier – Vollständige Dokumentation, Best Practices & Integrationen

Avatar
Manuel Schulz · 18.10.2025 · Entwicklung · 20–25 min

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

  1. Schnellstart
  2. Funktionen im Überblick
  3. Schnellzugriff-Beispiele (Use-Cases)
  4. Advanced-Optionen (Details & Stolperfallen)
  5. Typische Anwendungskategorien (12 Szenarien)
  6. Integration: Website, iFrame, Teams
  7. Optionale JSON-API (mit Beispielen)
  8. Self-Test (Schritt für Schritt)
  9. Pro-Tipps, Performance & Sicherheit
  10. Dialekt-Hinweise & Grenzen
  11. Troubleshooting & FAQ
  12. Jetzt ausprobieren

1) Schnellstart

  1. Öffne zerlo.net/formattersql.
  2. Füge links dein SQL ein oder tippe es.
  3. Wähle den Modus: Beautify (lesbar) oder Minify (kompakt).
  4. Stelle Indent (2/4/8) und Keyword-Case (UPPER/lower/Preserve) ein.
  5. Optional: Kommentare entfernen, Semikolon erzwingen.
  6. Klicke Formatieren – das Ergebnis erscheint rechts, inkl. Kopieren und Als .sql speichern.
  7. Unter Self-Test kannst du die wichtigsten Regeln automatisch gegentesten.

2) Funktionen im Überblick

3) Schnellzugriff-Beispiele (Use-Cases)

Diese Beispiele decken die häufigsten Muster ab und sind ideal als Ausgangspunkt.

1_einfaches_select.sql
SELECT id, name FROM products WHERE status = 'active';
2_join_mit_aggregat.sql
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;
3_case_plus_subquery.sql
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;
4_cte_plus_window.sql
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;
5_insert_returning.sql
INSERT INTO users(email, role)
VALUES ('[email protected]', 'editor')
RETURNING id, email;
6_update_mit_case.sql
UPDATE accounts
SET status = CASE
  WHEN balance < 0 THEN 'overdue'
  WHEN balance = 0 THEN 'zero'
  ELSE 'ok'
END
WHERE active = 1;
7_delete_plus_exists.sql
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)

5) Typische Anwendungskategorien (12 Szenarien)

  1. Code-Reviews: Einheitliches Layout beschleunigt Reviews und verhindert Stil-Diskussionen.
  2. Debugging: Komplexe JOIN/CASE werden sofort visuell greifbar.
  3. Wissensaustausch: Lesbares SQL für Wiki/Confluence/README.
  4. Migrationen & Skripte: Semikolon-Sicherheit, eindeutige Blöcke.
  5. API-Embedding: Minify + Kommentar-Strip, um SQL in Apps/Services einzubetten.
  6. BI/Reporting: Abfragen aus BI-Tools aufräumen, bevor sie geteilt werden.
  7. Learning & Schulung: CTEs/Window-Funktionen strukturiert zeigen.
  8. Refactoring: Erst beautify, dann Teilbereiche isolieren/optimieren.
  9. Fehlerreproduktion: Klarer strukturierte Queries für Support-Tickets.
  10. Style-Guide-Durchsetzung: Team-Standard (Indent/Case) konsequent anwenden.
  11. Vorlagen: „Schnellzugriff“ als Basis für neue Abfragen.
  12. 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)

embed_iframe.html
<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)

7) Optionale JSON-API

Du kannst die Formatierung in Tools/CI/CD automatisieren. Ein Schlank-Beispiel:

api_request.http
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 }
}
api_response.json
{
  "ok": true,
  "result": "SELECT id, name\nFROM users\nWHERE id = 1;",
  "stats": { "ms": 4, "inLen": 43, "outLen": 47 }
}
api_node.js
// 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);
api_php.php
<?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)

  1. Klicke im Tool unten auf Self-Test – es werden drei Kernfälle automatisch geprüft.
  2. Beautify-Case: Keywords UPPER, klare Umbrüche, sauberes Indent.
  3. Minify-Case: Kommentare entfernt (falls Option aktiv), kompakte Ausgabe.
  4. Indent-Case: Sichtbarer Wechsel zwischen 2/4/8 Spaces.
  5. Ergebnis erscheint im Self-Test-Pane; bei Abweichungen: Optionen prüfen und ggf. Modus wechseln.

9) Pro-Tipps, Performance & Sicherheit

10) Dialekt-Hinweise & Grenzen

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

Hat dir der Leitfaden geholfen? Teile ihn gern: