Durée: | 2h
qe —»E
Spécialté et Niveau : | Réseau Génie Logiciel - RGLL2
Inftulé de Epreuve : | BASE DE DONNEES 2
Enseignant : | Oscar Jean-Serge BONOU
ww pigierbenin.com
(01° 2811 COTONOU RE
Soit le schéma de base de données relationnel suivant :
AGENCE (Num_Agence, Nom, Ville, Acti)
CLIENT (Num_Client, Nom, Ville)
COMPTE (Num_Compte, Num_Agence, Num_Client, Solde)
EMPRUNT (Num_Emprunt, Num_Agence, Num_Client, Montant)
I. MCD synthétique
u u
AGENCE COMPTE
7 Ln
Ln
un
un
| EMPRUNT CLIENT
ll, Ecrire les requétes en SQL suivantes en vous basant sur le schéma relationnel :
2. Lalliste des agences (nom et ville) ayant des comptes-clients
select distinct Nom ville.
from AGENCE, COMPTE
where AGENCE Num_Agence = COMPTE.Num_Agence
3. Los Clients ayant un compte a *La Rochelle”
select CLIENT.Nom
from CLIENT, AGENCE, COMPTE
where AGENCE.Num_Agence = COMPTE.Num_Agence
and CLIENT.Num_Client = COMPTE.Num_Client
and AGENCE Ville = "La Rochelle”
4, Les Clients ayant un compte ou un emprunt a "La Rochelle”
select CLIENT. Nom
from CLIENT, AGENCE, COMPTE
where CLIENT.Num_Client = COMPTE.Num_Client
and AGENCE.Num_Agence =COMPTE.Num_Agence
‘and AGENCE. Ville = "La Rochelle”
union
select CLIENT.Nom
from CLIENT, AGENCE, EMPRUNT
where CLIENT.Num_Client = EMPRUNT.Num_Client
‘and AGENCE Num_Agence = EMPRUNT.Num_Agence.
‘and AGENCE.Ville = "La Rochelle”
5, Les Clients ayant un compte et un emprunt a "La Rochelle”
select CLIENT.Nom
from CLIENT, AGENCE, COMPTE
where CLIENT.Num_Client = COMPTE.Num_Client
PIGIER -L'Esprit, Page 1 sur 4wwe pigierbenin com
G (01 BP 2611 COTONOU RB
PIGIER Gy cms sare sun
IN
BENT service.examen@pigierbenin.com
‘and AGENCE.Num_Agence = COMPTE.Num_Agence
and AGENCE. Ville = "La Rochelle”
intersect
select CLIENT.Nom
from CLIENT, AGENCE, EMPRUNT
where CLIENT.Num_Client = EMPRUNT.Num_Client
and AGENCE.Num_Agence = EMPRUNT.Num_Agence
‘and AGENCE.Ville = "La Rochelle”
Les Clients ayant un compte et le nom de la ville ot is habitent
Premiére solution
select Nom, Ville
from CLIENT, COMPTE
where CLIENT.Num_Client = COMPTE, Num_Client
Deuxiéme solution :
select Nom, Ville
from CLIENT
where Num_Client in (select Num_Client from COMPTE)
Les Clients ayant un compte & ‘Peris-Etoile” et le nom de la ville od ils habitent
Premiére solution :
select CLIENTNom, CLIENT.Ville
from CLIENT, AGENCE, COMPTE
where CLIENT.Num_Client = COMPTE. Num_Client
and AGENCE.Num_Agence = COMPTE.Num_Agence
‘and AGENCE.Nom = "Paris-Etoile”
Deuxiéme solutio
select Nom, Ville from CLIENT
where Num_Client in ( select Num_Client from COMPTE where Num_Agence in
(select Num_Agence from AGENCE where Nom = “Paris-Etoile"))
Les Clients ayant un compte dans au-moins une agence d“Orsay”
Premiére solution
select Nom from CLIENT where Num_Client in
(select Num_Client from COMPTE where Num_Agence in
(select Num_Agence from AGENCE where Ville = “Orsay"))
Deuxiéme solution :
select CLIENT.Nom
from CLIENT, COMPTE, AGENCE
where CLIENT Num_Client = COMPTE.Num_Client
‘and COMPTE.Num_Agence = AGENCE Num_Agence
‘and AGENCE Ville = "Orsay"
9. Les Emprunteurs de l'agence “Paris-Rambuteau" classés par ordre alphabétique
select Nom from CLIENT where Num_Client in
(select Num_Client from EMPRUNT where Num_Agence in
(select Num_Agence from AGENCE where Nom = “Paris-Rambuteau"))
order by Nom
PIGIER -L'Esprit, Page 2 sur 4
La correction vous sera envoyée & trovers votre compte de messagerie scolairewwe pigierbenin com
G (01 BP 2611 COTONOU RB
PIGIER Gy cms sare sun
BENIN service.examen@pigierbenin.com
10. Le solde moyen des comptes-clients de chaque agence
Select Nom, avg(Solde)
From AGENCE, COMPTE
where AGENCE. Num_Agence = COMPTE Num_Agence
group by Nom
11, Solde moyen des comptes-clients des agences dont le solde moyen est > “10 000"
select Nom, avg(Solde)
from AGENCE, COMPTE
where AGENCE.Num_Agence = COMPTE.Num_Agence
Group by Nom
having avg (Solde) » 10000
12, Nombre de clients habitant “Paris”
select count(*) from CLIENT where Ville = “Paris”
13. Insérer le n-uplet <130765, Martin, Paris> dans la relation CLIENT
Insert into CLIENT values (130765, "Martin", Paris")
14. Diminuer 'emprunt de tous les clients habitant 'Marseille” de "5%"
Update EMPRUNT set Montant = Montant * 0.95
where Num_Client in (select Num_Client from CLIENT where Ville = Marseille”)
Il. En vous basant sur le schéma relationnel ci-dessous, écrire les requétes en SQL suivantes :
1 - Quelle est la composition de l'équipe FESTINA (Numéro, nom et pays des coureurs) ?
SELECT NuméroCoureur, NomCoureur, NomPays
FROM EQUIPE A INNER JOIN COUREUR B ON A.CodeE quipe=B.CodeEquipe
INNER JOIN PAYS C ON B.CodePays=C.CodePays
WHERE NomEquipe="FESTINA" ;
2- Quel est le nombre de kilomatres total du Tour de France 97 ?
‘SELECT SUM(Nokm) FROM ETAPE ;
3+ Quel est le nombre de kilometres total des étapes de type HAUTE MONTAGNE ?
SELECT SUM(Nokm)
FROM ETAPE A INNER JOIN TYPE_ETAPE B ON A.CodeType=B.CodeType
WHERE LibelléType="HAUTE MONTAGNE" ;
4-- Quels sont les noms des coureurs qui n'ont pas obtenu de bonifications ?
SELECT NomCoureur
FROM COUREUR
WHERE NuméroCoureur NOT IN (SELECT NuméroCoureur FROM ATTRIBUER_BONIFICATION) ;
ou
SELECT NomCoureur
FROM COUREUR C LEFT JOIN ATTRIBUER_BONIFICATION A ON C.NuméroCoureur=A.NumeéroCoureur
WHERE A.NuméroCoureur IS NULL ;
PIGIER -L'Esprit, Page 3 sur 4
La correction vous sera envoyée & travers votre compte de messager scolairewwe pigierbenin com
G (01 BP 2611 COTONOU RB
PIGIER Gy cms sare sun
BENIN service.examen@pigierbenin.com
5 - Quels sont les noms des coureurs qui ont particioé a toutes les étapes ?
SELECT NomCoureur
FROM PARTICIPER A INNER JOIN COUREUR B ON A.NuméroCoureur=8,NuméroCoureur
GROUP BY NuméroCoureur, NomCoureur
HAVING COUNT(*)=(SELECT COUNT(*) FROM ETAPE) ;
6- Quol est le classement général des coureurs (nom, code équipe, code pays et temps des coureurs) a lissue
des 13 premiéres étapes sachant que les bonifications ont été intégrées dans les temps réalisés & chaque tape ?
SELECT NomCoureur, CodeEquipe, CodePays, SUM(TempsRéalisé) AS Total
FROM PARTICIPER A INNER JOIN COUREUR B ON ANuméroCoureur=8.NuméroCoureur
WHERE NuméroEtape<=13 AND A.NuméroCoureur IN
(SELECT NuméroCoureur FROM PARTICIPER WHERE NuméroEtape=13)
GROUP BY ANuméroCoureur, NomCoureur, CodeEquipe, CodePays ORDER BY 4 ;
PIGIER -L'Esprit, Page 4 sur 4
La correction vous sera envoyée & travers votre compte de messager scolaire