0% ont trouvé ce document utile (0 vote)
2 vues10 pages

Cours 07 SQL LMD

Le document traite des jointures en SQL, qui permettent d'extraire des données de plusieurs tables en utilisant des clés primaires et étrangères. Il présente différents types de jointures, notamment l'équijointure, l'autojointure et l'inéquijointure, avec des exemples de requêtes SQL pour illustrer chaque type. La syntaxe générale des jointures relationnelles est également décrite pour faciliter la compréhension des opérations sur les bases de données.

Transféré par

kungbvndit
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)
2 vues10 pages

Cours 07 SQL LMD

Le document traite des jointures en SQL, qui permettent d'extraire des données de plusieurs tables en utilisant des clés primaires et étrangères. Il présente différents types de jointures, notamment l'équijointure, l'autojointure et l'inéquijointure, avec des exemples de requêtes SQL pour illustrer chaque type. La syntaxe générale des jointures relationnelles est également décrite pour faciliter la compréhension des opérations sur les bases de données.

Transféré par

kungbvndit
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

Licence L2 S4 2020/2021

Laboratoire

SQL MDL :
Extraction de données de plusieurs
tables
(JOINTURE)

20‐mars‐22 Les Bases de Données H. Meziane 1


Extraction de données de plusieurs tables (JOINTURE)

 Les jointures permettent d’extraire des données issues de


plusieurs tables. Le processus de normalisation du modèle
relationnel est basé sur la décomposition et a pour conséquence
d’augmenter le nombre de tables d’un schéma. Ainsi, la majorité
des requêtes utilisent des jointures nécessaires pour pouvoir
extraire des données de tables distinctes.

 Une jointure met en relation deux tables sur la base d’une clause
de jointure (comparaison de colonnes). Généralement, cette
comparaison fait intervenir une clé étrangère d’une table avec une
clé primaire d’une autre table (car le modèle relationnel est
fondamentalement basé sur les valeurs).

20/03/2022 Les Bases de données H. Meziane 2


Exemple : Deux tables à mettre en jointure

Comp Nrue Rue ville Nomcomp Compagnie


AA 18 Dar El Beida Alger Air Algérie
SING 7 Camparols Singapour Singapore AL
CAST 1 G. Brassens Blagnac Castanet AL
Brevet = ChefPil

Pilote brevet nom nbHVol compa ChefPil

PL-1 Amine 450 AA PL‐4

PL-2 Mohamed 900 AA PL‐4

PL-3 Laroche 1000 SING

PL-4 Albarik 3400 AA

Comp = Compa

20/03/2022 Les Bases de données H. Meziane 3


Jointure : Syntaxe
 La forme la plus courante de la jointure est la jointure dite
«relationnelle» caractérisée par une seule clause FROM
contenant les tables et alias à mettre en jointure deux à deux. La
syntaxe générale suivante décrit une jointure relationnelle :

SELECT [alias1.]Col1, [alias1.]Col2…


FROM nomTable1[alias1], nomTable2[alias2]
WHERE (conditionDejointure)

Remarque :
Afin d’éviter les ambiguïtés concernant le nom des colonnes, on
utilise en général des alias de tables pour suffixer les tables dans la
clause FROM et préfixer les colonnes dans les clauses SELECT et
WHERE.
20/03/2022 Les Bases de données H. Meziane 4
Types de jointures
 En fonction de la nature de l’opérateur utilisé dans la requête, de
la clause de jointure et des tables concernées, on distingue :
• L’équijointure (equi join) est la plus connue, elle utilise l’opérateur
d’égalité dans la clause de jointure. La jointure naturelle est
conditionnée en plus par le nom des colonnes.
• L’autojointure (self join) est un cas particulier de l’équijointure, qui
met en œuvre deux fois la même table (des alias de tables
permettront de distinguer les enregistrements entre eux).
• L’inéquijointure fait intervenir tout type d’opérateur :
(<>, >, <, >=, <=, BETWEEN,LIKE, IN)

20/03/2022 Les Bases de données H. Meziane 5


Équijointure
Equijointure utilise l’opérateur d’égalité dans la clause de jointure et
compare généralement des clés primaires avec des clés étrangères.

Comp Nrue Rue ville Nomcomp Compagnie


AA 18 Dar El Beida Alger Air Algérie
SING 7 Camparols Singapour Singapore AL
CAST 1 G. Brassens Blagnac Castanet AL

Pilote brevet nom nbHVol compa ChefPil

PL-1 Amine 450 AA PL‐4

PL-2 Mohamed 900 AA PL‐4

PL-3 Laroche 1000 SING

PL-4 Albarik 3400 AA

20/03/2022 Les Bases de données H. Meziane 6


Équijointure : Exemple
 Requête 1 : l’identité des pilotes de la compagnie de nom 'Air
Algérie' ayant plus de 500 heures de vol.

SELECT brevet, nom SELECT [Link], [Link]


FROM Pilote, Compagnie FROM Pilote as P, Compagnie as C
Where nomComp = ‘Air Algérie’ And Where [Link] = ‘Air Algérie'
nbHVol > 50 And AND [Link] > 500
Compa= comp ou ; And [Link]= [Link] ;
[Link]= [Link] ;
ou

Brevet Nom
PL-2 Mohamed
PL-4 Albarik

20/03/2022 Les Bases de données H. Meziane 7


Autojointure
 Autojointure est un cas particulier de l’équijointure, elle relie une
table à elle‐même.
Requête 3 : l’identité des pilotes placés sous la responsabilité des
pilotes de nom 'Albarik‘ ;
SELECT [Link], [Link]
FROM Pilote p1, Pilote p2
Where [Link] LIKE '%Albarik% ou [Link]=‘Albarik ’
And [Link]= [Link] ;
Pilote
brevet nom nbHVol compa ChefPil

brevet nom PL-1 Amine 450 AA PL‐4

PL-2 Mohamed 900 AA PL‐4


PL-1 Amine SING
PL-3 Laroche 1000
PL-2 Mohamed PL-4 Albarik 3400 AA

20/03/2022 Les Bases de données H. Meziane 8


Inéquijointure
Requête 5 : les pilotes ayant plus d’expérience que le pilote de
numéro de brevet 'PL‐2'.

SELECT [Link], [Link],[Link], [Link] "Référence"


FROM Pilote p1, Pilote p2
WHERE [Link] = 'PL‐2';
And [Link] > [Link];

Pilote
brevet nom nbHVol compa ChefPil
brevet nom nbHVol Référence
PL-1 Amine 450 AA PL‐4
PL-3 Laroche 1000 900
PL-2 Mohamed 900 AA PL‐4
PL-4 Albarik 3400 900
PL-3 Laroche 1000 SING

PL-4 Albarik 3400 AA

20/03/2022 Les Bases de données H. Meziane 9


Équijointure : autre Exemple
 Requête 2 : les coordonnées des compagnies qui embauchent
des pilotes de moins de 500 heures de vol.

SELECT [Link], [Link], [Link], [Link]


FROM Pilote P, Compagnie C
Where [Link]< 500
AND [Link]= [Link] ;

Comp Nrue Rue ville Nomcomp


AA 18 Dar El Beida Alger Air Algérie

20/03/2022 Les Bases de données H. Meziane 10

Vous aimerez peut-être aussi