Guide complet du formatage SQL : embellissement, minification et conseils de débogage

Utilitaires

Pourquoi formater le SQL ?

-- ❌ Compressé sur une ligne—difficile à lire
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;

-- ✅ Formaté—la structure est claire
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;

Le formatage rend le flux SELECT → FROM → JOIN → WHERE → ORDER BY évident d'un coup d'œil.


Utilisation du formateur SQL de ToolsKu

Étapes

  1. Ouvrez le Formateur SQL
  2. Collez votre SQL
  3. Embellissement automatique (mots-clés en majuscules, indentation alignée)
  4. Passez en mode minification pour supprimer les espaces

Dialectes SQL pris en charge

Dialecte Notes
SQL SQL standard
MySQL Syntaxe spécifique MySQL
PostgreSQL Syntaxe spécifique PostgreSQL
SQLite Base de données légère
T-SQL SQL Server
PL/SQL Oracle

Conventions de formatage

Mots-clés en majuscules

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

Règles d'indentation

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;

Indentation des sous-requêtes

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

Scénarios pratiques

1. Débogage SQL depuis les logs

Les logs de production affichent souvent du SQL minifié :

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

Copiez dans le Formateur SQL pour une analyse claire.

2. SQL généré par ORM

// Le SQL de Sequelize / TypeORM est souvent non formaté
console.log(query.getSql());
// → SELECT `User`.`id`, `User`.`name` FROM `users` AS `User` WHERE ...

Formatez pour voir ce que l'ORM exécute réellement.

3. JSON vers SQL

Une API renvoie un tableau JSON—vous avez besoin d'instructions INSERT :

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

Utilisez JSON vers SQL pour générer :

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

4. Minifier le SQL (économiser la bande passante)

Le SQL formaté est pour la lecture ; le SQL minifié est pour le transport :

-- Formaté : 15 lignes, 380 caractères
-- Minifié : 1 ligne, 195 caractères (49 % plus petit)

Problèmes courants de formatage SQL

Les mots-clés dans les chaînes restent en minuscules

-- ✅ Correct : 'select' dans une chaîne reste inchangé
SELECT * FROM logs WHERE message LIKE '%select%'

Commentaires préservés

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

Le formateur conserve les commentaires de ligne -- et les commentaires de bloc /* */.


Résumé

Le formatage SQL est une habitude à fort impact pour les développeurs de bases de données. Le Formateur SQL de ToolsKu prend en charge plusieurs dialectes et s'exécute localement dans le navigateur—associez-le à JSON vers SQL pour un flux de travail complet des données vers SQL.

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