0% ont trouvé ce document utile (0 vote)
60 vues33 pages

Guide des Jointures SQL pour Étudiants

Transféré par

ghislaintchummamo
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
60 vues33 pages

Guide des Jointures SQL pour Étudiants

Transféré par

ghislaintchummamo
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

BDW - Jointures SQL

Fabien Duchateau

[Link] [at] [Link]


Université Claude Bernard Lyon 1

2024 - 2025

[Link]
Positionnement dans BDW

Ces diapositives utilisent le genre féminin (e.g., chercheuse, développeuses) plutôt


que l’écriture inclusive (moins accessible, moins concise, et pas totalement inclusive)
BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 2 / 31
Requêtes sur plusieurs tables

Interrogation de plusieurs tables en utilisant la clause from

I Produit cartésien

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 3 / 31


Types de jointure

Si l’on met une ou plusieurs conditions entre attributs de différentes


tables, on ne parle plus de produit cartésien mais de jointure

I Jointure interne

I Jointure externe

I Semi-jointure

I Auto-jointure

[Link]
BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 4 / 31
Conditions de jointure

Les conditions de jointures spécifient comment les tables sont


jointes (quels attributs et quelle comparaison)

I Équi-jointure : la condition de jointure est une égalité

I Theta-jointure : la condition de jointure n’est pas (forcément)


une égalité (>, …, ≤, in, like, …)

I Naturelle : la condition de jointure applique une égalité entre


les attributs identiques (même label) des deux tables

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 5 / 31


Plan

Produit cartésien

Jointure naturelle

Jointure interne

Jointure externe

Semi-jointure

Auto-jointure
Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Syntaxe

SELECT att1 , att2 , …


FROM nom_table1 , nom_table2 , … ;

I Plusieurs tables séparées par des virgules = produit cartésien


entre ces différentes tables

I Si la requête utilise un attribut att présent dans plusieurs


tables, on doit l’écrire nom_table.att ou utiliser un alias de
table [Link]

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 7 / 31


Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Exemple de produit cartésien


idE nomE moyenneLycée effectifLycée idE nomU département décision
123 Ana 19.5 1000 123 INSA informatique O
234 Bob 18 1500 123 UCB électronique N
345 Chloé 17.5 500 123 UCB informatique O
456 Damien 19.5 1000 123 UJM électronique O
543 Chloé 17 2000 234 INSA biologie N
567 Éléonore 14.5 2000 345 UJF bioinformatique O
654 Ana 19.5 1000 345 UJM bioinformatique N
678 Farid 19 200 345 UJM électronique N
765 Joana 14.5 1500 345 UJM informatique O
789 Gisèle 17 800 543 UJF informatique N
876 Irène 19.5 400 678 UCB histoire O
898 Hector 18.5 800 765 UCB histoire O
765 UJM histoire N
Table Élève 765 UJM psychologie O
876 UCB informatique N
nomU ville effectif 876 UJF biologie O
INSA Lyon 36000 876 UJF biologie marine N
UCB Lyon 15000 898 INSA informatique O
UJF Grenoble 10000 898 UCB informatique O
UJM Saint-Étienne 21000
Table Candidature
Table Université

Les paires de nom d’université et de nom d’élève


nomU nomE
INSA Ana
SELECT nomU,nomE UCB Ana
FROM Universite, Eleve; UJF Ana Total de 48
UJM Ana
INSA Bob tuples (12 × 4)
… …

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 8 / 31


Plan

Produit cartésien

Jointure naturelle

Jointure interne

Jointure externe

Semi-jointure

Auto-jointure
Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Syntaxe

SELECT att1 , att2 , …


FROM nom_table1 JOIN nom_table2
USING(attcx , …, attcy )
[ WHERE autres_conditions ] ;

I Soient attc1 , …, attck les attributs communs des tables


nom_table1 et nom_table2 , et {attcx , …, attcy } ∈ {attc1 , …,
attck }

I Les instances de nom_table1 et nom_table2 qui possèdent des


valeurs égales sur le sous-ensemble de leurs attributs
communs attcx , …, attcy sont ”assemblées” en un tuple qui est
ajouté dans le résultat

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 10 / 31


Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Exemple de jointure naturelle


idE nomE moyenneLycée effectifLycée idE nomU département décision
123 Ana 19.5 1000 123 INSA informatique O
234 Bob 18 1500 123 UCB électronique N
345 Chloé 17.5 500 123 UCB informatique O
456 Damien 19.5 1000 123 UJM électronique O
543 Chloé 17 2000 234 INSA biologie N
567 Éléonore 14.5 2000 345 UJF bioinformatique O
654 Ana 19.5 1000 345 UJM bioinformatique N
678 Farid 19 200 345 UJM électronique N
765 Joana 14.5 1500 345 UJM informatique O
789 Gisèle 17 800 543 UJF informatique N
876 Irène 19.5 400 678 UCB histoire O
898 Hector 18.5 800 765 UCB histoire O
765 UJM histoire N
Table Élève 765 UJM psychologie O
876 UCB informatique N
nomU ville effectif 876 UJF biologie O
INSA Lyon 36000 876 UJF biologie marine N
UCB Lyon 15000 898 INSA informatique O
UJF Grenoble 10000 898 UCB informatique O
UJM Saint-Étienne 21000
Table Candidature
Table Université

Les élèves avec plus de 19 de moyenne qui ont candidaté


SELECT DISTINCT [Link], nomE,
idE nomE moyenneLycee nomU
,→ moyenneLycee, nomU 123 Ana 19.5 INSA
FROM Eleve e JOIN Candidature c 123 Ana 19.5 UCB
123 Ana 19.5 UJM
,→ USING(idE) 876 Irene 19.5 UCB
WHERE moyenneLycee > 19; 876 Irene 19.5 UJF

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 11 / 31


Plan

Produit cartésien

Jointure naturelle

Jointure interne

Jointure externe

Semi-jointure

Auto-jointure
Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Syntaxe

La jointure interne est fréquemment utilisée : seuls les tuples qui


respectent la condition de jointure sont conservés

SELECT att1 , att2 , …


FROM nom_table1 INNER JOIN nom_table2
ON nom_table1 .attx Θ nom_table2 .attx
[ WHERE autres_conditions ] ;

I Soit Θ un opérateur parmi =, 6=, <, >, ≤, ≥, like, …

I La condition de jointure nom_table1 .attx Θ nom_table2 .attx


s’exprime avec le mot-clé on
I Les autres conditions s’expriment dans le where et sont
appliquées après la condition de jointure

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 13 / 31


Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Exemple de jointure interne


idE nomE moyenneLycée effectifLycée idE nomU département décision
123 Ana 19.5 1000 123 INSA informatique O
234 Bob 18 1500 123 UCB électronique N
345 Chloé 17.5 500 123 UCB informatique O
456 Damien 19.5 1000 123 UJM électronique O
543 Chloé 17 2000 234 INSA biologie N
567 Éléonore 14.5 2000 345 UJF bioinformatique O
654 Ana 19.5 1000 345 UJM bioinformatique N
678 Farid 19 200 345 UJM électronique N
765 Joana 14.5 1500 345 UJM informatique O
789 Gisèle 17 800 543 UJF informatique N
876 Irène 19.5 400 678 UCB histoire O
898 Hector 18.5 800 765 UCB histoire O
765 UJM histoire N
Table Élève 765 UJM psychologie O
876 UCB informatique N
nomU ville effectif 876 UJF biologie O
INSA Lyon 36000 876 UJF biologie marine N
UCB Lyon 15000 898 INSA informatique O
UJF Grenoble 10000 898 UCB informatique O
UJM Saint-Étienne 21000
Table Candidature
Table Université

Les élèves qui ont candidaté dans une université grenobloise


SELECT [Link], nomE
FROM Eleve e INNER JOIN Candidature c ON [Link] = idE nomE
,→ [Link] 345 Chloe
543 Chloe
INNER JOIN Universite u ON [Link] = [Link] 876 Irene
WHERE [Link] = 'Grenoble'; 876 Irene

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 14 / 31


Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Syntaxe obsolète de jointure interne

SELECT att1 , att2 , …


FROM nom_table1 , nom_table2 , …
WHERE nom_table1 .attx Θ nom_table2 .attx
[ AND autres_conditions ] ;

I Jointure interne ≡ sélection sur le produit cartésien

I La condition de jointure nom_table1 .attx Θ nom_table2 .attx


s’exprime ici dans le where

Syntaxe obsolète, à éviter !

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 15 / 31


Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Exemple de jointure interne obsolète


idE nomE moyenneLycée effectifLycée idE nomU département décision
123 Ana 19.5 1000 123 INSA informatique O
234 Bob 18 1500 123 UCB électronique N
345 Chloé 17.5 500 123 UCB informatique O
456 Damien 19.5 1000 123 UJM électronique O
543 Chloé 17 2000 234 INSA biologie N
567 Éléonore 14.5 2000 345 UJF bioinformatique O
654 Ana 19.5 1000 345 UJM bioinformatique N
678 Farid 19 200 345 UJM électronique N
765 Joana 14.5 1500 345 UJM informatique O
789 Gisèle 17 800 543 UJF informatique N
876 Irène 19.5 400 678 UCB histoire O
898 Hector 18.5 800 765 UCB histoire O
765 UJM histoire N
Table Élève 765 UJM psychologie O
876 UCB informatique N
nomU ville effectif 876 UJF biologie O
INSA Lyon 36000 876 UJF biologie marine N
UCB Lyon 15000 898 INSA informatique O
UJF Grenoble 10000 898 UCB informatique O
UJM Saint-Étienne 21000
Table Candidature
Table Université

Les élèves qui ont candidaté dans une université grenobloise


SELECT [Link], nomE idE nomE
FROM Eleve e, Candidature c, Universite u 345 Chloe
543 Chloe
WHERE [Link] = [Link] AND [Link] = [Link] AND 876 Irene
,→ [Link] ='Grenoble'; 876 Irene

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 16 / 31


Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Exemple de jointure interne obsolète


idE nomE moyenneLycée effectifLycée idE nomU département décision
123 Ana 19.5 1000 123 INSA informatique O
234 Bob 18 1500 123 UCB électronique N
345 Chloé 17.5 500 123 UCB informatique O
456 Damien 19.5 1000 123 UJM électronique O
543 Chloé 17 2000 234 INSA biologie N
567 Éléonore 14.5 2000 345 UJF bioinformatique O
654 Ana 19.5 1000 345 UJM bioinformatique N
678 Farid 19 200 345 UJM électronique N
765 Joana 14.5 1500 345 UJM informatique O
789 Gisèle 17 800 543 UJF informatique N
876 Irène 19.5 400 678 UCB histoire O
898 Hector 18.5 800 765 UCB histoire O
765 UJM histoire N
Table Élève 765 UJM psychologie O
876 UCB informatique N
nomU ville effectif 876 UJF biologie O
INSA Lyon 36000 876 UJF biologie marine N
UCB Lyon 15000 898 INSA informatique O
UJF Grenoble 10000 898 UCB informatique O
UJM Saint-Étienne 21000
Table Candidature
Table Université

Les élèves qui ont candidaté dans une université grenobloise


SELECT [Link], nomE idE nomE
FROM Eleve e, Candidature c, Universite u 345 Chloe
543 Chloe
WHERE [Link] = [Link] AND [Link] = [Link] AND 876 Irene
,→ [Link] ='Grenoble'; 876 Irene

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 16 / 31


Plan

Produit cartésien

Jointure naturelle

Jointure interne

Jointure externe

Semi-jointure

Auto-jointure
Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Syntaxe

SELECT att1 , att2 , …


FROM nom_table1 < LEFT | RIGHT | FULL >
[ OUTER ] JOIN nom_table2
ON nom_table1 .attx = nom_table2 .attx
[ WHERE autres_conditions ] ;

I Non exprimable en Algèbre Relationnelle

I Une requête avec jointure outer join retourne les tuples qui
remplissent la condition de la jointure, mais aussi certains
tuples qui ne la satisfont pas
I Ces tuples qui ne satisfont pas la condition de jointure
dépendent du mot-clé left, right ou full

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 18 / 31


Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Syntaxe (2)

Sélection des tuples de la jointure externe :

I left (ou right) : les tuples de la table de gauche (ou de


droite) sans correspondance dans l’autre table sont inclus dans
le résultat avec un null pour les attributs de l’autre table

I full : toutes les lignes de chacune des tables sont retournées.


Les lignes sans correspondance ont leurs attributs complétés
par des null

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 19 / 31


Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Exemple de jointure externe à gauche


idE nomE moyenneLycée effectifLycée idE nomU département décision
123 Ana 19.5 1000 123 INSA informatique O
234 Bob 18 1500 123 UCB électronique N
345 Chloé 17.5 500 123 UCB informatique O
456 Damien 19.5 1000 123 UJM électronique O
543 Chloé 17 2000 234 INSA biologie N
567 Éléonore 14.5 2000 345 UJF bioinformatique O
654 Ana 19.5 1000 345 UJM bioinformatique N
678 Farid 19 200 345 UJM électronique N
765 Joana 14.5 1500 345 UJM informatique O
789 Gisèle 17 800 543 UJF informatique N
876 Irène 19.5 400 678 UCB histoire O
898 Hector 18.5 800 765 UCB histoire O
765 UJM histoire N
Table Élève 765 UJM psychologie O
876 UCB informatique N
nomU ville effectif 876 UJF biologie O
INSA Lyon 36000 876 UJF biologie marine N
UCB Lyon 15000 898 INSA informatique O
UJF Grenoble 10000 898 UCB informatique O
UJM Saint-Étienne 21000
Table Candidature
Table Université

Les élèves avec une moyenne supérieure à 19 et les éventuelles


universités où ils/elles ont candidaté
idE nomE nomU
SELECT DISTINCT [Link], nomE, nomU 123 Ana INSA
123 Ana UCB
FROM Eleve e LEFT OUTER JOIN 123 Ana UJM
,→ Candidature c 456 Damien NULL
654 Ana NULL
ON [Link] = [Link] 876 Irène UCB
WHERE moyenneLycee > 19; 876 Irène UJF
BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 20 / 31
Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Exemple de jointure externe complète


idE nomE moyenneLycée effectifLycée idE nomU département décision
123 Ana 19.5 1000 123 INSA informatique O
234 Bob 18 1500 123 UCB électronique N
345 Chloé 17.5 500 123 UCB informatique O
456 Damien 19.5 1000 123 UJM électronique O
543 Chloé 17 2000 234 INSA biologie N
567 Éléonore 14.5 2000 345 UJF bioinformatique O
654 Ana 19.5 1000 345 UJM bioinformatique N
678 Farid 19 200 345 UJM électronique N
765 Joana 14.5 1500 345 UJM informatique O
789 Gisèle 17 800 543 UJF informatique N
876 Irène 19.5 400 678 UCB histoire O
898 Hector 18.5 800 765 UCB histoire O
765 UJM histoire N
Table Élève 765 UJM psychologie O
876 UCB informatique N
nomU ville effectif 876 UJF biologie O
INSA Lyon 36000 876 UJF biologie marine N
UCB Lyon 15000 898 INSA informatique O
UJF Grenoble 10000 898 UCB informatique O
UJM Saint-Étienne 21000
Table Candidature
Table Université

Requête identique, mais avec un full outer join


idE nomE nomU
SELECT [Link], nomE, nomU 123 Ana UJM
FROM Eleve e FULL OUTER JOIN 123 Ana INSA
123 Ana UCB
,→ Candidature c 456 Damien NULL
ON [Link] = [Link] 654 Ana NULL
876 Irène UJF
WHERE moyenneLycee > 19; 876 Irène UCB

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 21 / 31


Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Exemple de jointure externe complète (2)

idE nomE moyenneLycée effectifLycée idE nomU département décision


123 Ana 19.5 1000 123 INSA informatique O
234 Bob 18 1500 123 UCB électronique N
345 Chloé 17.5 500 123 UCB informatique O
456 Damien 19.5 1000 123 UJM électronique O
543 Chloé 17 2000 234 INSA biologie N
567 Éléonore 14.5 2000 345 UJF bioinformatique O
654 Ana 19.5 1000 345 UJM bioinformatique N
678 Farid 19 200 345 UJM électronique N
765 Joana 14.5 1500 345 UJM informatique O
789 Gisèle 17 800 543 UJF informatique N
876 Irène 19.5 400 678 UCB histoire O
898 Hector 18.5 800 765 UCB histoire O
765 UJM histoire N
Table Élève 765 UJM psychologie O
876 UCB informatique N
nomU ville effectif 876 UJF biologie O
INSA Lyon 36000 876 UJF biologie marine N
UCB Lyon 15000 898 INSA informatique O
UJF Grenoble 10000 898 UCB informatique O
UJM Saint-Étienne 21000
Table Candidature
Table Université

Pourquoi la requête full outer join donne le même résultat


que celle avec left outer join ?

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 22 / 31


Plan

Produit cartésien

Jointure naturelle

Jointure interne

Jointure externe

Semi-jointure

Auto-jointure
Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Syntaxe

SELECT nom_table2 .*
FROM nom_table1 JOIN nom_table2 USING(attcx , …) ;

I Une semi-jointure est une jointure qui ne garde dans le


résultat que les attributs d’une seule table (ici les attributs de
nom_table2 )

I Construite avec nom_table.* dans la clause select (tous


types de jointures acceptés, i.e., interne, externe)

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 24 / 31


Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Exemple de semi-jointure
idE nomE moyenneLycée effectifLycée idE nomU département décision
123 Ana 19.5 1000 123 INSA informatique O
234 Bob 18 1500 123 UCB électronique N
345 Chloé 17.5 500 123 UCB informatique O
456 Damien 19.5 1000 123 UJM électronique O
543 Chloé 17 2000 234 INSA biologie N
567 Éléonore 14.5 2000 345 UJF bioinformatique O
654 Ana 19.5 1000 345 UJM bioinformatique N
678 Farid 19 200 345 UJM électronique N
765 Joana 14.5 1500 345 UJM informatique O
789 Gisèle 17 800 543 UJF informatique N
876 Irène 19.5 400 678 UCB histoire O
898 Hector 18.5 800 765 UCB histoire O
765 UJM histoire N
Table Élève 765 UJM psychologie O
876 UCB informatique N
nomU ville effectif 876 UJF biologie O
INSA Lyon 36000 876 UJF biologie marine N
UCB Lyon 15000 898 INSA informatique O
UJF Grenoble 10000 898 UCB informatique O
UJM Saint-Étienne 21000
Table Candidature
Table Université

Les informations sur les élèves qui ont candidaté dans une
université grenobloise
SELECT e.*
idE nomE moyenneLycee effectifLycee
FROM Eleve e JOIN Candidature 345 Chloe 17.5 500
,→ c USING(idE) 543 Chloe 17 2000
876 Irene 19.5 400
JOIN Universite USING(nomU) 876 Irene 19.5 400
WHERE ville = 'Grenoble';
BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 25 / 31
Plan

Produit cartésien

Jointure naturelle

Jointure interne

Jointure externe

Semi-jointure

Auto-jointure
Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Syntaxe

SELECT t1.att1 , t2.att1 , …


FROM nom_table1 t1 JOIN nom_table1 t2
USING(attcx , …) ;

I Auto-jointure = jointure d’une table avec elle même (tous


types de jointures acceptés, i.e., interne, externe), en utilisant
des alias de table (ici t1 et t2)

I Exemples fréquents d’auto-jointure : personne/parents,


employée/supérieure hiérarchique, pièce/composant

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 27 / 31


Produit cartésien Jointure naturelle Jointure interne Jointure externe Semi-jointure Auto-jointure

Exemple d’auto-jointure
idE nomE moyenneLycée effectifLycée idE nomU département décision
123 Ana 19.5 1000 123 INSA informatique O
234 Bob 18 1500 123 UCB électronique N
345 Chloé 17.5 500 123 UCB informatique O
456 Damien 19.5 1000 123 UJM électronique O
543 Chloé 17 2000 234 INSA biologie N
567 Éléonore 14.5 2000 345 UJF bioinformatique O
654 Ana 19.5 1000 345 UJM bioinformatique N
678 Farid 19 200 345 UJM électronique N
765 Joana 14.5 1500 345 UJM informatique O
789 Gisèle 17 800 543 UJF informatique N
876 Irène 19.5 400 678 UCB histoire O
898 Hector 18.5 800 765 UCB histoire O
765 UJM histoire N
Table Élève 765 UJM psychologie O
876 UCB informatique N
nomU ville effectif 876 UJF biologie O
INSA Lyon 36000 876 UJF biologie marine N
UCB Lyon 15000 898 INSA informatique O
UJF Grenoble 10000 898 UCB informatique O
UJM Saint-Étienne 21000
Table Candidature
Table Université

Les paires d’élèves qui ont candidaté dans la même université


et le même département
SELECT DISTINCT [Link], [Link] [Link] [Link]
FROM Candidature c1 INNER JOIN Candidature c2 ON 123 898
123 876
,→ [Link] = [Link] 123 345
AND [Link] = [Link] 678 765
876 898
AND [Link] < [Link];
BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 28 / 31
Classification des jointures

I La condition = naturelle,
équi-jointure, θ-jointure

I Les n-uplets conservés dans le


résultat = jointure interne,
jointures externes (et produit
cartésien)

I Les attributs conservés dans le


résultat = semi-jointure

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 29 / 31


En résumé

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 30 / 31


Un moment de réflexion

Qu’est ce que l’hypothèse du monde clos ? Quel opérateur


permet de “contrer” cette hypothèse ?

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 31 / 31


Un moment de réflexion

Qu’est ce que l’hypothèse du monde clos ? Quel opérateur


permet de “contrer” cette hypothèse ?

Hypothèse du monde clos : l’absence d’information (null)


implique de filtrer le n-uplet (e.g., si on requête les universités de
Lyon, une université qui n’a pas de ville n’est pas retournée).
La jointure externe et/ou une condition ”OR att IS NULL”
permettent de contrer cette hypothèse en retournant les n-uplets
qui ont un null ou aucune correspondance de jointure

BDW - Base de données et programmation web // Jointures SQL UCBL Lyon 1 31 / 31

Vous aimerez peut-être aussi