You are on page 1of 4
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 4 wwe 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 scolaire wwe 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 scolaire wwe 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

You might also like