Applez Nous: +41 22 518 70 00
Le langage SQL exprime la logique de l’algèbre relationnelle. La jointure permet de recombiner les tables normalisées en fonction de prédicats de correspondance :
NULL lorsque la table de droite ne contient aucun enregistrement concordant. Indispensable pour détecter les éléments non associés (ex. clients n’ayant jamais passé de commande : WHERE commande_id IS NULL).Une sous-requête corrélée fait référence à une colonne de la requête parente externe. Elle est réévaluée pour chaque tuple de la relation principale :
-- Sélectionner les comptes bancaires dont le solde dépasse la moyenne de leur propre canton
SELECT c.nom, b.iban, b.solde_chf, c.canton
FROM comptes_bancaires b
JOIN clients c ON b.client_id = c.client_id
WHERE b.solde_chf > (
SELECT AVG(b2.solde_chf)
FROM comptes_bancaires b2
JOIN clients c2 ON b2.client_id = c2.client_id
WHERE c2.canton = c.canton
);
Bien que très expressive, la sous-requête corrélée peut présenter une complexité quadratique O(N²) si elle n’est pas optimisée par le planificateur de requêtes de PostgreSQL.