Commentaires SQL – Documenter vos requêtes
Bonne lecture et bon apprentissage !
Junior TSAFACK – 08/08/2026
⏱️ Temps de lecture estimé : 4 minutes
Il peut être intéressant d’insérer des commentaires dans les requêtes SQL pour mieux s’y retrouver lorsqu’il y a de grosses requêtes complexes, ou pour documenter le code pour d’autres développeurs. Il existe plusieurs façons de faire des commentaires dans le langage SQL, qui dépendent notamment du Système de Gestion de Base de Données utilisé (SGBD) et de sa version.
Commentaire sur une ligne : double tiret
Section titled “Commentaire sur une ligne : double tiret”Le double tiret (--) permet de faire un commentaire jusqu’à la fin de la ligne. Tout ce qui suit sur la ligne est ignoré par le SGBD.
Syntaxe
Section titled “Syntaxe”SELECT * -- Ceci est un commentaireFROM table1; -- Et celui-ci aussiExemple
Section titled “Exemple”-- Récupérer tous les clientsSELECT * FROM client;
-- Filtrer par villeSELECT * FROM client WHERE ville = 'Paris'; -- Seulement ParisCompatibilité
Section titled “Compatibilité”| SGBD | Support |
|---|---|
| MySQL | Oui (depuis la version 3.23.3) |
| PostgreSQL | Oui |
| Oracle | Oui |
| SQL Server | Oui |
| SQLite | Oui |
Bon à savoir : Pour MySQL, le
--doit être suivi d’un espace pour être valide. Exemple :-- commentaire(avec un espace après les tirets).
Commentaire sur une ligne : dièse
Section titled “Commentaire sur une ligne : dièse”Le symbole dièse (#) permet de faire un commentaire jusqu’à la fin de la ligne, tout comme --.
Syntaxe
Section titled “Syntaxe”SELECT * # Ceci est un commentaireFROM table1; # Et celui-ci aussiExemple
Section titled “Exemple”# Récupérer tous les clientsSELECT * FROM client;
# Filtrer par villeSELECT * FROM client WHERE ville = 'Paris';Compatibilité
Section titled “Compatibilité”| SGBD | Support |
|---|---|
| MySQL | Oui |
| MariaDB | Oui |
| PostgreSQL | Non |
| Oracle | Non |
| SQL Server | Non |
| SQLite | Non |
Remarque : L’utilisation de
#est spécifique à MySQL/MariaDB. Si vous devez écrire du SQL portable, privilégiez--ou/* */.
Commentaire multi-lignes
Section titled “Commentaire multi-lignes”Le commentaire multi-lignes, délimité par /* et */, a l’avantage de pouvoir indiquer où commence et où se termine le commentaire. Il est donc possible de l’utiliser en plein milieu d’une requête SQL sans problème, et sur plusieurs lignes.
Syntaxe
Section titled “Syntaxe”/* Ceci est un commentaire sur plusieurs lignes */SELECT * FROM table1;
SELECT * /* commentaire au milieu */ FROM table1;Exemple
Section titled “Exemple”/* * ========================================== * Requête : Récupérer les clients de Paris * Auteur : Junior TSAFACK * Date : 2026-08-08 * ========================================== */SELECT id, prenom, nom, villeFROM clientWHERE ville = 'Paris';
-- Exemple avec commentaire au milieu de la requêteSELECT id, /* identifiant client */ prenom, nom, villeFROM clientWHERE ville = 'Paris'; /* Filtrer les Parisiens */Compatibilité
Section titled “Compatibilité”| SGBD | Support |
|---|---|
| MySQL | Oui |
| MariaDB | Oui |
| PostgreSQL | Oui |
| Oracle | Oui |
| SQL Server | Oui |
| SQLite | Oui |
Bon à savoir : Les commentaires multi-lignes ne peuvent pas être imbriqués.
/* /* commentaire */ */ne fonctionnera pas correctement.
Astuce : utiliser les commentaires pour désactiver temporairement du code
Section titled “Astuce : utiliser les commentaires pour désactiver temporairement du code”Les commentaires sont très utiles pour désactiver temporairement une partie d’une requête sans la supprimer définitivement :
SELECT *FROM client-- WHERE ville = 'Paris' -- Désactivé temporairementORDER BY nom;Ou pour désactiver une clause entière :
SELECT *FROM client/*WHERE ville = 'Paris'AND actif = 1*/ORDER BY nom;Mise en garde : bug potentiel des commentaires sur une ligne
Section titled “Mise en garde : bug potentiel des commentaires sur une ligne”Dans certains contextes, si vous utilisez un système qui va supprimer les retours à la ligne, votre requête sera uniquement sur une ligne. Dans une telle situation, un commentaire effectué avec -- dans une requête peut donc créer un bug.
Requête SQL sur plusieurs lignes :
Section titled “Requête SQL sur plusieurs lignes :”SELECT * -- tout sélectionnerFROM table1 -- dans la table "table1"WHERE 1 = 1;Même requête SQL sur une ligne (si les retours à la ligne sont supprimés) :
Section titled “Même requête SQL sur une ligne (si les retours à la ligne sont supprimés) :”SELECT * -- tout sélectionner FROM table1 -- dans la table "table1" WHERE 1 = 1;Problème : Le premier -- commente tout le reste de la ligne, y compris la clause FROM et WHERE. La requête ne fonctionnera plus.
Solution
Section titled “Solution”Pour éviter ce problème, il est recommandé d’utiliser les commentaires multi-lignes (/* */) lorsque le code peut être minifié ou réécrit sur une seule ligne :
SELECT * /* tout sélectionner */FROM table1 /* dans la table "table1" */WHERE 1 = 1;Si la requête est réduite à une seule ligne, elle restera valide :
SELECT * /* tout sélectionner */ FROM table1 /* dans la table "table1" */ WHERE 1 = 1;Utilisation des commentaires pour les tests
Section titled “Utilisation des commentaires pour les tests”Les commentaires peuvent également être utilisés pour tester rapidement des variations de requêtes :
-- Version avec filtreSELECT * FROM client WHERE ville = 'Paris';
-- Version sans filtre (pour comparer les résultats)-- SELECT * FROM client;Commentaires dans les procédures stockées et fonctions
Section titled “Commentaires dans les procédures stockées et fonctions”Dans les objets plus complexes (procédures stockées, fonctions, triggers), les commentaires sont essentiels pour documenter le comportement, les paramètres et les retours :
CREATE PROCEDURE get_clients_par_ville( IN p_ville VARCHAR(100) -- Ville à filtrer)COMMENT 'Récupère la liste des clients d''une ville donnée'BEGIN -- Sélectionner les clients SELECT id, prenom, nom, email FROM client WHERE ville = p_ville ORDER BY nom, prenom;END;Bonnes pratiques
Section titled “Bonnes pratiques”-
Commentez le « pourquoi » plutôt que le « comment » : expliquez pourquoi une requête est écrite d’une certaine façon, pas ce qu’elle fait (le code est déjà explicite).
-
Utilisez les commentaires pour structurer de longues requêtes en sections logiques :
/* ==================================== SECTION 1 : Récupération des données ==================================== */SELECT ...
/* ==================================== SECTION 2 : Agrégation ==================================== */GROUP BY ...
/* ==================================== SECTION 3 : Tri et filtrage ==================================== */ORDER BY ...-
Documentez les modifications importantes : date, auteur, raison du changement.
-
Évitez les commentaires inutiles qui répètent ce que le code exprime déjà.
-
Préférez
/* */pour les commentaires longs et--pour les commentaires courts. -
Soyez prudent avec
--si vos requêtes peuvent être minifiées ou réécrites sur une seule ligne.
Prochain chapitre
Section titled “Prochain chapitre”Félicitations ! Vous avez terminé l’ensemble du cours SQL. Vous maîtrisez désormais les commandes essentielles pour interroger, manipuler, structurer et optimiser des bases de données relationnelles.
👉 Retour à l’accueil du cours SQL
Bonne continuation !
Junior TSAFACK – 08/08/2026