- Objectif
- 1. Nommer clairement les objets
- 2. Mettre les mots-clés SQL en majuscules
- 3. Indenter correctement les requêtes
- 4. Limiter les lignes trop longues
- 5. Utiliser des alias de colonnes explicites
- 6. Commenter les traitements complexes
- 7. Éviter les SELECT *
- 8. Garder une logique simple
- 9. Être cohérent
- Résumé des bonnes pratiques
- 10. Nommage des requêtes SQL
- Utiliser un préfixe selon l’usage
- Ajouter une description métier
- Identifier les requêtes avec paramètres
- Identifier les requêtes techniques ou spécifiques
- Une requête par usage ou une requête mutualisée ?
- Recommandation générale
- Conseils complémentaires
Objectif #
Le SQL permet d’interroger et de manipuler les données d’une base.
Même si une requête fonctionne, une écriture claire et structurée facilite :
- la lecture,
- la maintenance,
- la correction d’erreurs,
- le travail en équipe.
L’objectif n’est pas d’écrire du SQL “expert”, mais du SQL simple, lisible et cohérent.
1. Nommer clairement les objets #
Tables #
Utiliser des noms explicites représentant le contenu de la table.
Bon exemple #
CLIENT
FACTURE
PRODUIT
À éviter #
TAB1
DATA
TMP
Colonnes #
Le nom doit décrire clairement l’information contenue.
Bon exemple #
ID_CLIENT
DATE_FACTURE
MONTANT_TOTAL
À éviter #
ID1
DATE1
MNT
Alias #
Les alias servent à raccourcir les noms dans les requêtes.
Privilégier des alias courts mais compréhensibles.
Bon exemple #
SELECT
C.NOM,
C.PRENOM
FROM CLIENT C
À éviter #
SELECT
X.NOM,
X.PRENOM
FROM CLIENT X
2. Mettre les mots-clés SQL en majuscules #
Les mots-clés SQL doivent être facilement visibles dans la requête.
Bon exemple #
SELECT
NOM,
PRENOM
FROM CLIENT
WHERE VILLE = 'TOULOUSE'
À éviter #
select
nom,
prenom
from client
where ville = 'TOULOUSE'
3. Indenter correctement les requêtes #
Une requête bien indentée est beaucoup plus simple à comprendre.
Recommandations #
- Une ligne par colonne dans le
SELECT - Les clauses principales alignées
- Les conditions complexes séparées
Bon exemple #
SELECT
C.NOM,
C.PRENOM,
F.DATE_FACTURE,
F.MONTANT
FROM CLIENT C
INNER JOIN FACTURE F
ON F.ID_CLIENT = C.ID_CLIENT
WHERE C.ACTIF = 1
ORDER BY F.DATE_FACTURE DESC
4. Limiter les lignes trop longues #
Éviter les requêtes écrites sur une seule ligne.
À éviter #
SELECT NOM, PRENOM, VILLE FROM CLIENT WHERE ACTIF = 1 ORDER BY NOM
Une requête aérée est plus simple à lire et à modifier.
5. Utiliser des alias de colonnes explicites #
Les alias permettent de rendre les résultats plus compréhensibles.
Bon exemple #
SELECT
COUNT(*) AS NB_CLIENTS
FROM CLIENT
À éviter #
SELECT
COUNT(*) AS C1
FROM CLIENT
6. Commenter les traitements complexes #
Ajouter un commentaire lorsque la logique métier n’est pas évidente.
Exemple #
/* Calcul du montant TTC avec remise commerciale */
SELECT
MONTANT_HT * 1.20 * (1 - REMISE)
FROM FACTURE
Attention dans BiBOARD #
Dans les ACTION_SQL BiBOARD, les commentaires avec -- peuvent poser problème car les retours à la ligne sont supprimés.
Privilégier les commentaires de type :
/* Commentaire */
7. Éviter les SELECT * #
Le SELECT * récupère toutes les colonnes de la table, même celles inutiles.
Cela peut :
- ralentir les traitements,
- compliquer la lecture,
- provoquer des erreurs après modification de la table.
Bon exemple #
SELECT
NOM,
PRENOM,
EMAIL
FROM CLIENT
À éviter #
SELECT *
FROM CLIENT
8. Garder une logique simple #
Une requête trop complexe devient difficile à maintenir.
Conseils #
- Découper les traitements si nécessaire
- Utiliser des CTE pour clarifier les étapes
- Éviter les imbrications excessives
Exemple avec CTE #
WITH CLIENT_ACTIF AS (
SELECT
ID_CLIENT,
NOM
FROM CLIENT
WHERE ACTIF = 1
)
SELECT
NOM
FROM CLIENT_ACTIF
9. Être cohérent #
Le plus important est de garder les mêmes règles dans tout le projet :
- même style d’écriture,
- même indentation,
- mêmes conventions de nommage.
La cohérence améliore fortement la lisibilité globale.
Résumé des bonnes pratiques #
- Utiliser des noms explicites
- Mettre les mots-clés SQL en majuscules
- Indenter les requêtes
- Éviter les lignes trop longues
- Ajouter des commentaires utiles
- Éviter les
SELECT * - Utiliser des alias clairs
- Simplifier les traitements complexes
- Garder un style cohérent dans tout le projet
10. Nommage des requêtes SQL #
Dans BiBOARD, le nom d’une requête est important.
Il permet de comprendre rapidement son objectif, son usage et son contexte sans devoir ouvrir le SQL.
Un nom clair facilite :
- la maintenance,
- la recherche des requêtes,
- le travail en équipe,
- l’identification des dépendances.
Utiliser un préfixe selon l’usage #
Il est recommandé d’utiliser un préfixe indiquant le rôle de la requête.
Exemples de préfixes #
| Préfixe | Usage |
|---|---|
REP_ | Requête utilisée dans un tableau croisé dynamique (TCD) ou reporting |
LOAD_ | Chargement ou préparation de données |
DWH_ | Requête liée au Datawarehouse |
EXP_ | Export de données |
MAIL_ | Source utilisée dans un envoi de mail |
TMP_ | Requête temporaire ou de test |
CTRL_ | Contrôle ou vérification de données |
Bon exemple #
REP_VENTE_MENSUELLE
LOAD_CLIENT_ACTIF
EXP_FACTURE_COMPTABLE
MAIL_RELANCE_IMPAYE
DWH_CA_JOURNALIER
Ajouter une description métier #
Le nom doit permettre de comprendre rapidement le contenu ou l’objectif fonctionnel.
Bon exemple #
REP_STOCK_ARTICLE
REP_CA_COMMERCIAL
LOAD_FACTURE_CLIENT
À éviter #
REP_TEST
REQ1
LOAD_NEW
Identifier les requêtes avec paramètres #
Lorsqu’une requête utilise des paramètres, il peut être utile de le préciser dans le nom.
Recommandations possibles #
| Suffixe | Signification |
|---|---|
_PARAM | Requête paramétrée |
_P | Version courte |
_DATE | Paramètre de date |
_USER | Paramètre utilisateur |
L’important est surtout de garder une convention cohérente dans tout le projet.
Exemple #
REP_CA_MENSUEL_PARAM
REP_STOCK_P
MAIL_RELANCE_DATE
Identifier les requêtes techniques ou spécifiques #
Certaines requêtes ont un usage purement technique.
Il peut être utile de le rendre visible dans le nom.
Requête basée sur une table DUMMY #
Exemple :
TMP_DUMMY_DATE
REP_DUMMY_PARAM
Requête de contrôle #
CTRL_DOUBLON_CLIENT
CTRL_FACTURE_SANS_LIGNE
Une requête par usage ou une requête mutualisée ? #
C’est un point important dans BiBOARD.
Requête unique mutualisée #
Une seule requête peut alimenter plusieurs usages :
- reporting,
- export,
- mail,
- Datawarehouse.
Avantages #
- moins de duplication,
- maintenance centralisée.
Inconvénients #
- requête plus complexe,
- risque d’impact sur plusieurs usages,
- performances parfois moins adaptées.
Requêtes séparées par usage #
Créer une requête dédiée pour chaque besoin :
- une requête pour le TCD,
- une pour le Datawarehouse,
- une pour les exports,
- etc.
Avantages #
- logique plus claire,
- optimisation adaptée au besoin,
- maintenance plus simple fonctionnellement.
Inconvénients #
- duplication possible,
- plusieurs requêtes à maintenir.
Recommandation générale #
Dans BiBOARD, il est souvent préférable de :
- mutualiser uniquement les traitements réellement communs,
- créer des requêtes dédiées lorsque les usages deviennent différents.
Exemple #
À éviter #
Une seule requête très complexe qui :
- alimente un TCD,
- génère un export,
- sert pour un mail,
- recharge un Datawarehouse.
Préférable #
LOAD_VENTE_SOURCE
REP_VENTE_MENSUELLE
EXP_VENTE_COMPTABLE
MAIL_VENTE_ANOMALIE
Chaque requête a alors :
- un objectif clair,
- une responsabilité unique,
- une maintenance plus simple.
Conseils complémentaires #
Éviter les noms trop longs #
Le nom doit rester lisible.
Préférable #
REP_CA_AGENCE
À éviter #
REP_CHIFFRE_AFFAIRE_GLOBAL_PAR_AGENCE_ET_PAR_PERIODE
Garder une convention stable #
Le plus important est que toute l’équipe applique les mêmes règles :
- mêmes préfixes,
- mêmes suffixes,
- même structure de nommage.
La cohérence est plus importante que la convention elle-même.
