Vollständiger Leitfaden zur SQL-Formatierung: Verschönerung, Minifizierung und Debugging-Tipps

Dienstprogramme

Warum SQL formatieren?

-- ❌ In eine Zeile gequetscht—schwer zu lesen
SELECT u.id,u.name,o.total FROM users u JOIN orders o ON u.id=o.user_id WHERE o.status='paid' AND o.created_at>'2024-01-01' ORDER BY o.total DESC LIMIT 10;

-- ✅ Formatiert—Struktur ist klar
SELECT
  u.id,
  u.name,
  o.total
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE o.status = 'paid'
  AND o.created_at > '2024-01-01'
ORDER BY o.total DESC
LIMIT 10;

Formatierung macht den SELECT → FROM → JOIN → WHERE → ORDER BY-Ablauf auf einen Blick erkennbar.


Den ToolsKu SQL-Formatierer verwenden

Schritte

  1. Öffne den SQL-Formatierer
  2. Füge dein SQL ein
  3. Automatische Verschönerung (Schlüsselwörter großgeschrieben, Einrückung ausgerichtet)
  4. Wechsle in den Minifizierungsmodus, um Leerzeichen zu entfernen

Unterstützte SQL-Dialekte

Dialekt Hinweise
SQL Standard-SQL
MySQL MySQL-spezifische Syntax
PostgreSQL PostgreSQL-spezifische Syntax
SQLite Leichtgewichtige Datenbank
T-SQL SQL Server
PL/SQL Oracle

Formatierungskonventionen

Schlüsselwörter großschreiben

SELECT, FROM, WHERE, JOIN, ON, AND, OR, ORDER BY, GROUP BY, HAVING, LIMIT

Einrückungsregeln

SELECT
  column1,
  column2,
  CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ELSE default_result
  END AS calculated
FROM table1
  JOIN table2 ON table1.id = table2.ref_id
WHERE status = 'active'
  AND created_at >= '2024-01-01'
GROUP BY column1, column2
HAVING COUNT(*) > 5
ORDER BY column1 DESC;

Einrückung von Unterabfragen

SELECT *
FROM (
  SELECT
    user_id,
    SUM(amount) AS total
  FROM orders
  WHERE status = 'paid'
  GROUP BY user_id
) AS user_totals
WHERE total > 1000;

Praktische Szenarien

1. SQL aus Logs debuggen

Produktionslogs geben oft minifiziertes SQL aus:

[2024-06-01 10:00:00] QUERY: SELECT * FROM users WHERE email='test@example.com' AND deleted_at IS NULL

In den SQL-Formatierer kopieren, um es klar zu analysieren.

2. ORM-generiertes SQL

// Sequelize / TypeORM SQL ist oft unformatiert
console.log(query.getSql());
// → SELECT `User`.`id`, `User`.`name` FROM `users` AS `User` WHERE ...

Formatieren, um zu sehen, was das ORM tatsächlich ausführt.

3. JSON zu SQL

Eine API gibt ein JSON-Array zurück—du brauchst INSERT-Anweisungen:

[
  {"name": "Alice", "age": 30},
  {"name": "Bob", "age": 25}
]

Verwende JSON zu SQL zum Generieren:

INSERT INTO users (name, age) VALUES ('Alice', 30);
INSERT INTO users (name, age) VALUES ('Bob', 25);

4. SQL minifizieren (Bandbreite sparen)

Formatiertes SQL ist zum Lesen; minifiziertes SQL ist zum Transport:

-- Formatiert: 15 Zeilen, 380 Zeichen
-- Minifiziert: 1 Zeile, 195 Zeichen (49 % kleiner)

Häufige SQL-Formatierungsprobleme

Schlüsselwörter innerhalb von Strings bleiben kleingeschrieben

-- ✅ Korrekt: 'select' in einem String bleibt unverändert
SELECT * FROM logs WHERE message LIKE '%select%'

Kommentare bleiben erhalten

SELECT id, name  -- username
FROM users       /* active user count */
WHERE status = 1

Der Formatierer behält ---Zeilenkommentare und /* */-Blockkommentare.


Zusammenfassung

SQL-Formatierung ist eine wirkungsvolle Gewohnheit für Datenbankentwickler. Der ToolsKu SQL-Formatierer unterstützt mehrere Dialekte und läuft lokal im Browser—kombiniere ihn mit JSON zu SQL für einen vollständigen Daten-zu-SQL-Workflow.

#SQL#格式化#数据库#查询优化#开发