Eine SQL-Abfrage formatieren und einrücken
- Dashboard
- Dokumentation
- API
Warum SQL-Formatierung?
Die SQL-Formatierung macht SQL-Abfragen für Entwickler und Datenbankadministratoren lesbarer und verständlicher. Sie erleichtert das Debugging, Code-Reviews und die Optimierung von Abfragen. Ein gut formatiertes SQL ist unverzichtbar, um die Codequalität zu erhalten und effizient in einem Entwicklungsteam zusammenzuarbeiten.
Unterstützte SQL-Abfragetypen
Dieses Tool unterstützt alle Arten von SQL-Abfragen, einschließlich SELECT-, INSERT-, UPDATE-, DELETE-Anweisungen sowie Anweisungen zum Erstellen und Ändern von Tabellen (CREATE, ALTER, DROP).
So formatieren Sie SQL-Abfragen
Auf der Formatierungsseite können Sie Ihre SQL-Abfrage formatieren, indem Sie sie in das dafür vorgesehene Textfeld einfügen.
Sobald die SQL-Abfrage übermittelt wird, wird sie formatiert und im Ergebnisbereich angezeigt. Wenn die Abfrage ungültig ist, wird ein Fehler mit einem Hinweis auf die Art des Problems angezeigt.
Das formatierte SQL verwenden
Sie können das formatierte SQL über die dafür vorgesehene Kopierschaltfläche kopieren. Das erleichtert die Einbindung von SQL-Abfragen in Ihre Projekte oder Berichte.
Ihr SQL-Code sollte folgendermaßen aussehen:
SELECT u.id, u.name, u.email,
p.product_name, p.price,
o.order_date, o.quantity,
(SELECT SUM(p2.price * o2.quantity)
FROM orders o2
JOIN products p2 ON o2.product_id = p2.id
WHERE o2.user_id = u.id) as total_spent
FROM users u
JOIN orders o ON u.id = o.user_id
JOIN products p ON o.product_id = p.id
WHERE u.id IN (
SELECT user_id
FROM orders
WHERE order_date >= '2023-01-01' AND order_date <= '2023-12-31'
GROUP BY user_id
HAVING COUNT(*) > 5
)
AND p.price > 50
ORDER BY u.name ASC, o.order_date DESC
LIMIT 10;
Häufig gestellte Fragen
Welche SQL-Dialekte werden unterstützt: MySQL, PostgreSQL, SQL Server?
Der Formatierer erkennt die SQL-Standardsyntax (ANSI) sowie die wichtigsten Erweiterungen von MySQL, PostgreSQL, SQL Server (T-SQL), Oracle (PL/SQL) und SQLite. Die für jede Engine spezifischen Schlüsselwörter (LIMIT von MySQL und PostgreSQL, TOP von SQL Server, RETURNING von PostgreSQL, MERGE) werden korrekt eingerückt. Engine-spezifische native Funktionen werden ohne Validierung unverändert übernommen.
Verarbeitet der Formatierer CTEs und rekursive Abfragen?
Ja. Die mit WITH ... AS (...) deklarierten CTEs (Common Table Expressions) werden in einem eigenen Block eingerückt und rekursive CTEs (WITH RECURSIVE) werden erkannt. Das macht komplexe Abfragen deutlich lesbarer, insbesondere Hierarchien (Bäume, Graphen) und Gleitfenster. Korrelierte Unterabfragen werden ebenfalls am übergeordneten Geltungsbereich ausgerichtet.
Was ist der Unterschied zwischen einem SQL-Formatierer und einem Query-Optimierer?
Ein SQL-Formatierer ändert nicht die Semantik der Abfrage: Er organisiert lediglich den Code visuell neu (Zeilenumbrüche, Einrückung, Groß-/Kleinschreibung der Schlüsselwörter). Ein Optimierer hingegen schreibt die Abfrage um oder schlägt Änderungen vor (fehlende Indizes, umzuordnende Joins, in Joins umzuwandelnde Unterabfragen), um die Performance zu verbessern. Um den Ausführungsplan zu analysieren, verwenden Sie je nach Engine EXPLAIN oder EXPLAIN ANALYZE.
Bleiben SQL-Kommentare erhalten?
Ja. Einzeilige Kommentare -- commentaire und mehrzeilige Kommentare /* ... */ werden an ihrer ursprünglichen Position beibehalten. Das ist unerlässlich, um eine komplexe Abfrage zu dokumentieren oder Abschnitte zu markieren (TODO, Hint für den Optimierer, Version einer Migration). Wenn Sie die Abfrage an eine Engine übergeben, die kommentierte Hints interpretiert (/*+ INDEX(...) */ auf Oracle), bleiben diese ebenfalls erhalten.
Warum werden SQL-Schlüsselwörter in Großbuchstaben gesetzt?
Schlüsselwörter (SELECT, FROM, WHERE, JOIN) in Großbuchstaben zu setzen, ist eine historische Konvention, die sie visuell von Bezeichnern (Tabellen-, Spaltennamen) unterscheidet. Diese Praxis erleichtert das Lesen, besonders in langen Abfragen. Tabellen- und Spaltennamen werden hingegen in ihrer Originalschreibweise beibehalten, um die Schema-Konventionen zu respektieren (insbesondere auf PostgreSQL, wo die Groß-/Kleinschreibung für quotierte Bezeichner relevant ist).
Validiert der Formatierer die SQL-Syntax?
Der Formatierer führt eine leichte Syntaxanalyse durch, die grobe Fehler erkennt (unausgewogene Klammern, fehlendes Semikolon am Ende einer Anweisung, inkonsistente Schlüsselwörter). Er validiert weder die Existenz von Tabellen und Spalten noch die Konformität mit einem bestimmten Schema. Führen Sie dafür die Abfrage im EXPLAIN-Modus auf Ihrer Datenbank aus oder verwenden Sie einen dedizierten Linter wie sqlfluff.
Beispielanfrage
curl -X POST https://cdrn.fr/api/v1/tools/sql-formatter/execute \
-H "Content-Type: application/json" \
-d '{"input":"..."}'
Eingabeschema
| Feld | Typ | Erforderlich | Standard |
|---|---|---|---|
input |
text | ✓ | – |
Endpunkte
GET https://cdrn.fr/api/v1/tools- listet alle verfügbaren Tools aufGET https://cdrn.fr/api/v1/tools/sql-formatter- liefert das Schema dieses ToolsPOST https://cdrn.fr/api/v1/tools/sql-formatter/execute- führt dieses Tool mit einem JSON-Payload aus