Académique Documents
Professionnel Documents
Culture Documents
Cycle d’Ingénieurs
PLAN
I. Définitions Jointure/Vue/Sous-requête
II. Types de jointures
III. Exemples de sous-requêtes
IV. Tables et syntaxes
V. Applications
2
DÉFINITION
3
DÉFINITION
Exemples :
4
TYPES DE JOINTURES
5
PRINCIPE
6
EXEMPLE 1
7
EXEMPLE 2
8
EXEMPLE 3
9
REQUETES
&
SOUS REQUETES
10
A RETENIR
Requête sélection : ne récupère que les données souhaitées
Requête scalaire : récupère 1 ligne et 1 attribut (1 valeur ou 0 valeur )
Requête d'Analyse croisée : comparer les valeurs d'un champ par
rapport à un autre.
Requête action : ajoute/modifie/supprime des éléments de la BDD.
Sous-requête = requête imbriquée = sous-sélection : composée de
requête principale et une autre secondaire.
11
REQUÊTE SÉLECTION
SELECT NomClt
FROM TClt
Where CAClt >=10000 MAD
12
REQUÊTE SCALAIRE
SELECT Villedépôt
FROM Dépôt
Where Nomdépôt= ‘ZoneA’ ===➔ (nom unique)
13
REQUÊTE D'ANALYSE CROISÉE
Retourner les dates d'achat sous forme de lignes, le Service Pack pivoté
sous forme de colonnes et compter le nombre de serveurs de la table
Servers :
TRANSFORM Count(T_servers.svr_Name) As CountServers
SELECT T_Servers.svr_achat_Date
FROM T_Servers
GROUP BY T_Servers.svr_achat_Date
PIVOT T_Servers.svr_As_Service_Pack;
NB :
0pérateurs de relation PIVOT et UNPIVOT servent à modifier
une expression table dans une autre table. PIVOT fait pivoter une
expression de table en activant les valeurs uniques d’une colonne de
l’expression en plusieurs colonnes dans la sortie. L’opérateur
UNPIVOT effectue l’opération inverse : il transforme les colonnes
d’une expression table en valeurs de colonne. 14
REQUÊTE D'ANALYSE CROISÉE
TRANSFORM Sum Cette instruction est exclusive à la requête analyse
(T_Jouet.ResteStock) AS croisée. Les fonctions de regroupement habituelles
SommeDeResteStock peuvent être utilisées : SUM, COUNT, MAX, MIN,
AVG, Etc.
SELECT T_Jouet.type Ce titre apparaîtra ligne par ligne, autant de fois qu'il
existe de type.
FROM T_Jouet 1 ou plusieurs Tables de base servant à l'élaboration de
la requête. Ex : avoir un regroupement des achats des
clients par genre d'article =➔ T_Client, T_Vente,
T_VenteDetail et T_Article)
GROUP BY Cette ligne permet de créer autant de colonnes que
T_Jouet.type nécessaire (1 colonne par type différent)
PIVOT T_Jouet.Genre; Ce champ doit être unique. C'est la détermination du
nombre de colonnes et le titrage de chacune d'entre elles
avec un genre différent. (UnPIVOT permet de faire
pivoter les données d'une colonne en plusieurs colonnes)
15
REQUÊTE ACTION
INSERT INTO commandes (id_client, date_commande,
date_livraison) VALUES(2343, '2021-10-20', '2021-11-10')
16
SOUS-REQUÊTES
Une sous-requête = requête imbriquée = sous-sélection
17
EXEMPLES
DE
SOUS-REQUÊTES
18
SOUS-REQUÊTE 1
CodeClt NomClt PrénomClt VilleClt
1 Abyd Nora Fès
2 Rajawy Badr Casablanca
3 Najah Mohamed Fès
19
SOUS-REQUÊTE 2
CodeClt NomClt PrénomClt VilleClt
1 Abyd Nora Fès
2 Rajawy Badr Casablanca
3 Najah Mohamed Fès
20
SOUS-REQUÊTES 3
CodePrdt Libellé Categorie Px QStock
1 PC Informatique 7000 10
2 Ballon Sport 300 30
3 Tablette Informatique 500 20
21
SOUS-REQUÊTES 4
CodePrdt Libellé Categorie Px QStock
1 PC Informatique 7000 10
2 Ballon Sport 300 30
3 Tablette Informatique 500 20
22
SOUS-REQUÊTES 5
CodePrdt Libellé Categorie Px QStock
1 PC Informatique 7000 10
2 Ballon Sport 300 30
3 Tablette Informatique 500 20
4 Gant Sport 200 50
24
SOUS-REQUÊTES 7
Professeurs Matières VH Prof M/re
CodeProf NomProf PrénomProf IdM/re Intitulé CodeProf IdM/re VH
1 Abyd Nora 1 BDD 1 3 20
2 Rajawy Badr 2 Algo 2 1 56
3 Najah Mohamed 3 Réseau 3 3 24
UPDATE Commerciaux
SET Salaire = Salaire * 5%
WHERE Age > (SELECT avg(Age )FROM Commerciaux )
27
Application 1
CodeClt NomClt PrénomClt VilleClt
1 Abyd Nora Fès
2 Rajawy Badr Casablanca
3 Najah Mohamed Fès
28
Application 2
Professeurs VH Prof Matière
CodePro NomProf PrénomProf VilleProf CodeProf IdM/re VH
f 1 3 20
1 Abyd Nora Rabat 2 1 56
2 Rajawy Badr Fès 3 3 24
3 Najah Mohamed Rabat
IdM/re Intitulé
1 BDD
Matières 2 Algo
3 Réseau
TAF :
De ces tables, affichez les professeurs enseignant le Total VH < VH
max.
29
Application 3
30
TD
Créez les tables présentées ci-dessous et affichez le jeu
(nom_jeu) dont l'id est (id_jeu) possédé par (pseudo)
31
A TESTER
La sous-requête permet d'associer un id de jeu à un pseudo de
possesseur. La requête principale utilise les pseudos de la table
de membres pour les acheteurs uniquement.
32
A TESTER
Pour obtenir le nombre d'acheteur
33
BON APPRENTISSAGE
34