Jointures et requêtes avancées
IntermédiaireJointures, sous-requêtes, CTE, fonctions de fenêtre, LATERAL et dates : écrire des requêtes expressives et lisibles.
- 01
Les jointures
Une jointure combine les lignes de deux tables selon une condition : c'est ce qui rend le modèle relationnel utile.
- 02
Sous-requêtes et EXISTS
Une sous-requête est une requête imbriquée : elle peut renvoyer une valeur, une liste ou servir de test d'existence.
- 03
CTE : WITH pour structurer une requête
Une CTE (Common Table Expression) donne un nom à une sous-requête : la requête se lit de haut en bas, étape par étape.
- 04
UNION, INTERSECT, EXCEPT
Les opérateurs ensemblistes combinent les résultats de plusieurs requêtes de même forme (mêmes colonnes et types).
- 05
Fonctions de fenêtre
Une fonction de fenêtre calcule une valeur sur un ensemble de lignes liées à la ligne courante, sans les regrouper : on garde le détail et on ajoute un calcul.
- 06
DISTINCT ON et LATERAL
Deux fonctionnalités très pratiques de PostgreSQL pour les requêtes « le premier de chaque groupe » et « pour chaque ligne, une sous-requête ».
- 07
Dates, heures et intervalles
Bien manipuler le temps évite une classe entière de bugs (fuseaux, fins de mois, bornes).