SQL avancé
Fonctions texte, date et numériques, valeurs nulles, CASE WHEN, vues et analyse exploratoire de données
Objectif pédagogique
À la fin de ce module, vous saurez utiliser les fonctions texte, date et numériques avancées, gérer les valeurs nulles, construire des CASE WHEN et des vues, et mener une analyse exploratoire de données avec des CTE récursives.
Chapitres
Fonctions texte approfondies
Comme en Python ou en Excel, SQL propose des fonctions pour manipuler du texte : changer la casse, mesurer une longueur, ou assemb…
Voir les détails du chapitre
- Fonctions texte (1/2) : casse et longueur
- Fonctions texte (2/2) : nettoyer et extraire
- CONCAT() : assembler du texte en toute sécurité
- POSITION : localiser une sous-chaîne
- LPAD et RPAD : aligner du texte
- STRING_AGG : concaténer les valeurs d'un groupe
- SIMILAR TO : motifs de texte avancés
- Combiner plusieurs fonctions texte
- Cas pratique : rapport de noms normalisés par statut
Fonctions date approfondies
Les dates suivent aussi des fonctions dédiées, même si leur syntaxe exacte varie selon le moteur SQL (, standard SQL, utilisé ici…
Voir les détails du chapitre
- Fonctions date
- DATE_TRUNC : arrondir à une unité de temps
- Premier et dernier jour du mois
- Jour de la semaine : EXTRACT(DOW)
- Formater une date pour l'affichage : TO_CHAR
- Arithmétique d'intervalles : INTERVAL
- Différence précise en mois et en années : AGE()
- Combiner DATE_TRUNC et agrégation
- Cas pratique : les inscriptions du mardi
Fonctions numériques et NULL avancé
→ 120.5 (montant vaut 120.456 ; le chiffre après la 1ère décimale, 5, fait arrondir vers le haut). → 150 (montant vaut 150, un rem…
Voir les détails du chapitre
- Fonctions numériques : ROUND, ABS
- Gestion des valeurs nulles : COALESCE, IS NULL
- CEIL et FLOOR : arrondi vers le haut ou vers le bas
- MOD, POWER et SQRT
- GREATEST et LEAST
- NULLIF
- IS DISTINCT FROM : comparer en toute sécurité avec NULL
- STDDEV et VARIANCE
- Cas pratique : un rapport tolérant aux valeurs extrêmes et manquantes
CASE WHEN et agrégation conditionnelle
évalue les conditions dans l'ordre, et renvoie la valeur associée à la première condition vraie ; couvre tous les cas restants. Av…
Voir les détails du chapitre
- Transformation conditionnelle : CASE WHEN
- CASE simple vs CASE recherché
- CASE imbriqué
- Agrégation conditionnelle : SUM(CASE WHEN…)
- Construire un tableau croisé simple avec CASE
- La clause FILTER : une alternative à CASE dans un agrégat
- CASE dans ORDER BY : un tri personnalisé
- Combiner CASE et sous-requête
- Cas pratique : un rapport à trois catégories
CAST et vues approfondies
→ 120 (montant vaut 120.456 ; le comportement exact sur une valeur décimale — arrondi ou troncature — peut varier légèrement selon…
Voir les détails du chapitre
- Changement de type : CAST / CONVERT
- Les vues : CREATE VIEW
- CREATE OR REPLACE VIEW
- DROP VIEW
- Une vue basée sur une jointure
- Les limites d'une vue avec agrégation
- Vue matérialisée : principe
- Rafraîchir une vue matérialisée
- Cas pratique : un rapport d'achats filtré et casté
Regroupements avancés
→ 2 valeurs distinctes : 'actif', 'inactif'. → 6 (le nombre total de lignes, doublon inclus). → 1 groupe : Emma / emma@mail.com (l…
Voir les détails du chapitre
- Analyse exploratoire (1/2) : DISTINCT, compter, doublons
- Analyse exploratoire (2/2) : explorer une répartition
- GROUPING SETS : plusieurs regroupements en une requête
- ROLLUP : sous-totaux hiérarchiques
- CUBE : toutes les combinaisons de regroupement
- La fonction GROUPING() : distinguer un sous-total d'un NULL réel
- Comparer GROUPING SETS, ROLLUP et CUBE
- HAVING avec les regroupements avancés
- Cas pratique final : exploration + transformation combinées
CTE récursive et structures avancées
Une CTE récursive s'appelle ellemême, pour parcourir une hiérarchie sur un nombre de niveaux inconnu à l'avance — impossible avec…
Voir les détails du chapitre
- WITH RECURSIVE : principe et syntaxe
- Condition d'arrêt : éviter une boucle infinie
- Cas d'usage : retrouver tous les descendants d'une catégorie
- Calculer un niveau de profondeur
- Introduction au type JSON
- Extraire une valeur JSON avec -> et ->>
- ARRAY : stocker et interroger un tableau de valeurs
- ARRAY_AGG et UNNEST
- Cas pratique : compter les descendants de chaque racine
Mise en pratique : hôtellerie
Ce chapitre introduit un nouveau scénario : un petit hôtel, avec deux tables indépendantes. Les prix () et les revenus calculés da…
Voir les détails du chapitre
- Les tables chambres et réservations
- CTE : chiffre d'affaires par mois
- ROLLUP : revenu par type de chambre
- CASE : compter les réservations par statut
- Vue : réservations actives
- Gérer un commentaire optionnel avec COALESCE
- STRING_AGG : chambres réservées par mois
- Vue matérialisée : un rapport mensuel figé
- Cas pratique de synthèse : tableau de bord hôtelier
Mise en pratique : e-commerce
Ce chapitre introduit un nouveau scénario : une boutique en ligne, avec deux tables indépendantes. Les prix () de ce chapitre sont…
Voir les détails du chapitre
- Les tables articles et avis
- CTE : note moyenne par article
- STRING_AGG : commentaires par article
- COALESCE : afficher les avis sans commentaire
- CASE : classer les avis par ressenti
- ROLLUP : nombre d'avis par catégorie d'article
- ARRAY_AGG : les clients ayant noté un article
- Vue : avis détaillés avec article
- Cas pratique de synthèse : tableau de bord des avis
Mise en pratique : ressources humaines
Dernier scénario du module : un organigramme d'entreprise, sur une seule table hiérarchique. référence dans cette même table : cha…
Voir les détails du chapitre
- La table collaborateurs
- CTE récursive : l'organigramme complet
- Cas d'usage : tous les subordonnés d'un manager
- CASE : classer les collaborateurs par tranche de salaire
- ROLLUP : masse salariale par niveau hiérarchique
- STRING_AGG : les subordonnés directs de chaque manager
- Vue : organigramme avec noms de manager
- JSON : des compétences flexibles par collaborateur
- Cas pratique final du module : tableau de bord RH par niveau
Progression du module
0/90 terminées
Ce module inclut
- ✓ 90 leçons · durée estimée ~16.5h
- ✓ 193 exercices pratiques corrigés
- ✓ Quiz de révision par chapitre
- ✓ Quiz de fin de module
- ✓ Certificat de réussite vérifiable
- ✓ Accès permanent une fois débloqué
Votre certificat
Terminez ce module pour débloquer votre certification vérifiable.
Accès complet
La première leçon de chaque chapitre est gratuite (10 leçons sur 90).
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 80 leçons restantes de ce module