Pourquoi formater ses requêtes SQL ?
Les requêtes SQL écrites rapidement ou générées par des ORM sont souvent sur une seule ligne, illisibles et difficiles à déboguer. Formater le SQL consiste à ajouter des retours à la ligne, des indentations et à mettre les mots-clés en majuscules pour rendre la structure de la requête immédiatement visible. Une requête formatée permet d'identifiér rapidement les tables jointes, les conditions de filtrage, l'ordre de tri et les agrégations. C'est aussi une bonne pratique d'équipe : un code SQL cohérent et lisible facilite les revues de code et la maintenance.
Conventions de formatage SQL
Les conventions les plus répandues placent chaque clause principale (SELECT, FROM, WHERE, JOIN, ORDER BY, GROUP BY) sur une nouvelle ligne. Les mots-clés sont en majuscules et les noms de tables et colonnes en minuscules. Les colonnes du SELECT sont séparées par des retours à la ligne pour les requêtes avec plus de 3 colonnes. Les conditions du WHERE sont indentées et chaque AND/OR commence une nouvelle ligne. Les sous-requêtes sont indentées d'un niveau supplémentaire. Ces conventions améliorent considérablement la lisibilité des requêtes complexes.
Astuces pour écrire du SQL maintenable
Utilisez des alias de tables courts mais significatifs (u pour users, o pour orders) pour réduire la répétition. Placez les JOINs dans l'ordre logique du modèle de données. Commentez les requêtes complexes avec des -- explications. Évitez SELECT * en production : listez explicitement les colonnes nécessaires. Utilisez des CTEs (WITH clause) pour décomposer les requêtes complexes en étapes nommées. Enfin, testez toujours vos requêtes avec EXPLAIN pour vérifier les performances et l'utilisation des index.