Une jointure SQL associe les enregistrements de deux tables ou plus au sein d’une même requête, en s’appuyant sur une colonne de liaison partagée. Cette opération est au cœur de la conception relationnelle et permet d’exploiter pleinement la structure normalisée d’une base de données. Quels sont les différents types de jointure en SQL ? SQL…
Une CTE récursive est une expression de table commune qui se référence elle-même pour répéter un traitement jusqu’à ce qu’une condition d’arrêt soit satisfaite. Elle se déclare avec WITH RECURSIVE sous MySQL et PostgreSQL, ou simplement WITH sous SQL Server qui détecte automatiquement l’auto-référencement. Sa structure repose sur deux blocs obligatoires assemblés par UNION ALL : un membre ancre (anchor member)…
Une expression de table commune ou CTE en SQL (Common Table Expression), est un bloc de résultats temporaire nommé, déclaré avant une requête SQL avec le mot-clé WITH. Elle ne persiste pas en base de données : le moteur SQL la construit à la volée et la détruit dès que l’instruction se termine. Introduite dans le…
En SQL, croiser des données issues de plusieurs tables se fait principalement de deux manières : via une jointure ou via une subquery. Ces deux techniques répondent à des besoins distincts et leur mécanisme d’exécution interne diffère profondément. Une jointure assemble les lignes de plusieurs tables en une seule opération de fusion horizontale. Une requête imbriquée…
En SQL, toutes les sous-requêtes ne fonctionnent pas de la même façon selon leur relation avec la requête externe. Certaines s’exécutent une seule fois et transmettent un résultat fixe à la requête principale. D’autres s’exécutent une fois par ligne traitée par la requête externe, en adaptant leur résultat à chaque ligne. Cette distinction porte un…
Une requête imbriquée est une instruction SQL intégrée dans le corps de la requête SQL principale. On l’appelle aussi sous-requête, sous-sélection ou subquery en anglais selon les documentations officielles. Elle permet de résoudre des problèmes qu’une requête de sélection simple ne peut pas traiter en une seule passe. La requête interne s’exécute toujours en premier et transmet…
Cours