- Exercice Langage SQL : Une Médiathèque (2/2) - Licence Fondamentale d'Informatique
lundi 25 mars 2013

Exercice Langage SQL : Une Médiathèque (2/2)

Suite de l'Exercice une Médiathèque

Enoncé de l'Exercice


On considère le schéma relationnel suivant qui modélise une application sur la gestion de livres et de disques dans une Médiathèque :
                     Disque (CodeOuv, Titre, Style, Pays, Année, Producteur)
                     E_Disque (CodeOuvNumEx, DateAchat, Etat)
                     Livre (CodeOuv, Titre, Editeur, Collection)
                     E_Livre (CodeOuv, NumEx, DateAchat, Etat)
                     Auteurs (CodeOuvIdentité)
                     Abonne (NumAbo, Nom, Prénom, Rue, Ville, CodeP, Téléphone)
                     Prêt (CodeOuvNumEx, DisqueOuLivre, NumAbo, DatePret)
                     Personnel (NumEmp, Nom, Prénom, Adresse, Fonction, Salaire)
Travail à Faire :
Traduisez en SQL les questions suivantes :
     7) Donnez le nombre de prêts en cours pour chaque famille en considérant qu’une famille regroupe des personnes de même nom et possédant le même numéro de téléphone ?
     8) Quel est le code du disque dont la médiathèque possède le plus grand nombre d’exemplaire ?
     9) Quels sont les éditeurs pour lesquels l’attribut Collection n’a pas été renseigné ?
   10) Quels sont les abonnés dont le nom contient la chaîne « ALDO » et habitant en Isère ?
   11) Quel est le nombre de prêts en cours ?
   12) Quels sont les salaires minimum, maximum et moyen des employés exerçant une fonction de bibliothécaire ?
   13) Quel est le nombre de genres de livres différents ?
   14) Quel est le nombre de disque acheté en 1998 ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
-- 7) Donnez le nombre de prêts en cours pour chaque famille en considérant qu’une famille regroupe des personnes de même nom et possédant le même numéro de téléphone ?
 
SELECT Nom, Téléphone, COUNT(*) 
FROM Abonne A, Prêt P 
WHERE A.NumAbo=P.NimAbo 
GROUP BY Nom, Téléphone
 
-- 8) Quel est le code du disque dont la médiathèque possède le plus grand nombre d’exemplaire ?
 
SELECT CodeOuv FROM E_Disque GROUP BY CodeOuv
HAVING COUNT(*)=(SELECT MAX(COUNT(*)) 
FROM E_Disque 
GROUP BY CodeOuv)
 
-- 9) Quels sont les éditeurs pour lesquels l’attribut Collection n’a pas été renseigné ?
 
SELECT Editeur FROM Livre 
WHERE Collection IS NULL
 
-- 10) Quels sont les abonnés dont le nom contient la chaîne « ALDO » et habitant en Isère ?
 
SELECT * FROM Abonne 
WHERE Nom=‘%ALDO%’ 
AND CodeP=38--’
 
-- 11) Quel est le nombre de prêts en cours ?
 
SELECT COUNT(*) FROM Prêt
 
-- 12) Quels sont les salaires minimum, maximum et moyen des employés exerçant une fonction de bibliothécaire ?
 
SELECT MIN(Salaire), MAX(Salaire), AVG(Salaire) 
FROM Personnel 
WHERE Fonction = "bibliothécaire"
 
-- 13) Quel est le nombre de genres de livres différents ?
 
SELECT COUNT(DISTINCT Genre) FROM Livre
 
-- 14) Quel est le nombre de disque acheté en 1998 ?
 
SELECT COUNT(*) FROM E_Disque 
WHERE DateAchat
BETWEEN ’01-Jan-2006AND10-Dec-2007

0 commentaires:

Enregistrer un commentaire

 
-