Module 1 : Comprendre les bases de données
1.1 — Pourquoi les bases de données ? Aperçu
Module 2 : Installation et découverte de PostgreSQL
2.1 — Installer PostgreSQL Aperçu
Module 3 : Le langage SQL — Les fondamentaux
3.1 — SELECT : lire des données Aperçu
Module 4 : Conception et création de tables
4.1 — Clés primaires et identifiants Aperçu
Module 5 : Requêtes SELECT avancées
5.1 — DISTINCT, CASE, COALESCE, NULLIF Aperçu
Module 6 : Jointures SQL
6.1 — INNER JOIN : le cœur des bases relationnelles Aperçu
Module 7 : Agrégation et regroupement avancés
7.1 — GROUP BY approfondi Aperçu
Module 8 : Sous-requêtes et CTE
8.1 — Sous-requêtes scalaires et de liste Aperçu
Module 9 : Fonctions SQL intégrées
9.1 — Fonctions de chaînes Aperçu
Module 10 : Indexation et performances
10.1 — Comprendre EXPLAIN ANALYZE Aperçu
Module 11 : Contraintes avancées et intégrité
11.1 — Domaines et types personnalisés Aperçu
Module 12 : Transactions et concurrence
12.1 — Transactions ACID Aperçu
Module 13 : Vues et vues matérialisées
13.1 — Vues simples et modifiables Aperçu
Module 14 : Procédures stockées et fonctions PL/pgSQL
14.1 — Premiers pas en PL/pgSQL Aperçu
Module 15 : Triggers et événements
15.1 — Créer un trigger simple Aperçu
Module 16 : Sécurité, rôles et permissions
16.1 — Rôles, utilisateurs et GRANT Aperçu
Module 17 : Sauvegarde, restauration et maintenance
17.1 — pg_dump et pg_restore Aperçu
Module 18 : Types de données avancés
18.1 — JSON et JSONB Aperçu
Module 19 : Recherche plein texte (Full-Text Search)
19.1 — tsvector et tsquery Aperçu
Module 20 : Projet final — Conception complète
20.1 — Analyse du besoin et cahier des charges Aperçu

Le reste de la formation est réservé aux inscrits.

S'inscrire gratuitement
Module 8 : Sous-requêtes et CTE Aperçu gratuit

8.1 — Sous-requêtes scalaires et de liste

📋 Objectifs d'apprentissage

  • Utiliser des sous-requêtes dans SELECT, FROM, WHERE
  • Différencier sous-requêtes scalaires (1 valeur) et de liste (IN)
-- Scalaire dans SELECT
SELECT nom, salaire, (SELECT AVG(salaire) FROM employes) AS moyenne_entreprise FROM employes;
-- Liste dans WHERE (IN)
SELECT * FROM produits WHERE categorie_id IN (SELECT id FROM categories WHERE actif = true);
-- Dans FROM (table dérivée)
SELECT dept, avg_sal FROM (SELECT departement AS dept, AVG(salaire) AS avg_sal FROM employes GROUP BY dept) AS stats WHERE avg_sal > 5000;
Ceci est un aperçu gratuit.
Voir la formation complète