Informatique 13CG
Exercice : Base de donnes COURS
Description des tables
Les relations
Michle Schanen
Informatique 13CG
Requtes
1.
Afficher le nom et le prnom de tous les animateurs.
2.
Afficher toutes les coordonnes des diffrents participants.
3.
Afficher les diffrents droits dinscription suivant lordre dcroissant.
4.
Afficher les dates auxquelles il y a des cours tris chronologiquement.
5.
Afficher le code entreprise, les noms et prnoms des participants venant de lentreprise
dont le code est 33336.
6.
Afficher le code du cours, la date et le code du thme de tous les cours qui ont eu lieu le
22 janvier 1998.
7.
Afficher les matricules des animateurs responsables et la date des cours qui ont eu lieu
entre le 1er janvier et 31 janvier 1998.
8.
Afficher les codes des cours et les dates des cours qui ont eu lieu 8 mars 1998 et 10
septembre 1998.
9.
Afficher les codes cours, le droit dinscription et la prime de responsabilit des cours
dont le droit dinscription est en dessous de 6000 F et la prime de responsabilit est
suprieure 1000 F
10. Afficher tous les renseignements sur les diffrents thmes.
11. Afficher les codes des cours dont le droit dinscription est compris entre 2.500 et
6.000 F.
12. Afficher tous les noms et prnoms des participants dont le nom commence avec la lettre
N.
13. Afficher tous les noms et prnoms des participants dont le nom se termine avec la lettre
N tri suivant lordre alphabtique des noms et prnoms.
14. Afficher tous les noms et prnoms des participants dont les 2e et l3e lettres du nom sont
respectivement C et H.
15. Afficher les noms et prnoms de tous les participants qui sont ns en 68.
16. Compter le nombre de participants ns en 68.
17. Quel est le nombre de cours organiss ?
18. Combien de participants a-t-on eu dans tous les cours ?
19. Combien de participants a-t-on eu pour le cours no 026 ?
20. Calculer la moyenne des droits dinscription, des primes de responsabilit et des tarifs
heure.
21. Combien de cours organise-t-on pour chaque niveau ?
22. Quel est le code du cours dont le droit dinscription est le plus lev ?
23. Quel est le code du cours dont le droit dinscription est le plus bas ?
24. Calculer le total des heures prestes par les animateurs pour tous les cours.
25. Calculer le total des heures prestes par les animateurs pour le cours no 005.
Michle Schanen
Informatique 13CG
26. Calculer le total des heures prestes par lanimateur ayant le numro matricule
19800202222.
27. Afficher le numro matricule et le nombre total dheures prestes par chaque animateur
tirs suivant lordre croissant des numros matricule.
28. Afficher le code entreprise et le nombre total de participants par entreprise.
29. Afficher le numro matricule et le nombre total dheures prestes pour les animateurs
ayant prests plus de 10 heures.
30. Afficher le numro matricule et le nombre total dheures prestes pour les animateurs
ayant prests plus de 10 heures et qui sont ns en 68.
31. Afficher pour chaque cours le code cours, le nom et le prnom de lanimateur
responsable.
32. Afficher pour chaque cours son code, le thme et le nom et le prnom de lanimateur
responsable.
33. Pour chaque participant afficher le numro matricule, le nom, le prnom ainsi que le
nombre de cours auxquels il a particips.
34. Afficher le numro matricule, le nom et le prnom ainsi que le nombre total dheures
prestes par chaque animateur.
35. Afficher pour chaque entreprise (code et nom de lentreprise) le nombre de participants
tri suivant lordre croissant des noms dentreprise.
36. Afficher pour chaque participant son nom et son prnom, le nom de son entreprise ainsi
que les thmes (en toutes lettres) des cours auxquels il a particips (tris suivant les
numros matricules des participants et des thmes).
37. Saisir le nom dun animateur et compter le nombre de cours quil a anim.
38. Afficher le nom des catgories pour lesquelles il y a eu plus de 3 cours.
39. Afficher les noms des animateurs qui ont anim plus de cours que lanimateur dont vous
devez saisir le nom.
Michle Schanen
Informatique 13CG
Solutions
1.
SELECT
FROM
nom, prnom
animateurs
2.
SELECT
FROM
*
participants
3.
SELECT
FROM
ORDER BY
DISTNCT droit_inscrip
cours
droit_inscrip DESC
4.
SELECT
FROM
ORDER BY
DISTINCT date
cours
date
5.
SELECT
FROM
WHERE
code_entreprise, nom, prnom
participants
code_entreprise = 33336
6.
SELECT
FROM
WHERE
code_cours, date, code_thme
cours
date = #22/01/98#
7.
SELECT
FROM
WHERE
matricule_animateur, date
cours
date BETWEEN #01/01/98# AND #31/01/98#
8.
SELECT
FROM
WHERE
ou bien
code_cours, date
cours
date = #08/03/98# OR date = #10/09/98#
date IN (#08/03/98#, #10/09/98#)
9.
SELECT
FROM
WHERE
code_cours, droit_inscrip, prime_resp
cours
droit_inscrip < 6000 AND prime_resp >1000
10. SELECT
FROM
*
thmes
11. SELECT
FROM
WHERE
code_cours
cours
droit_inscrip BETWEEN 2500 AND 6000
12. SELECT
FROM
WHERE
nom, prenom
participants
nom LIKE N*
13. SELECT
FROM
WHERE
ORDER BY
nom, prenom
participants
nom LIKE *N
nom, prnom
Michle Schanen
Informatique 13CG
14. SELECT
FROM
WHERE
nom, prnom
participants
nom LIKE ?CH*
15. SELECT
FROM
WHERE
nom, prnom
participants
matricule LIKE 1968* ou bien
16. SELECT
FROM
WHERE
COUNT(*) AS [nombre de participants ns en 98]
participants
matricule LIKE 1968* ou bien
matricule LIKE 1968???????
17. SELECT
FROM
COUNT(*) AS [nombre total de cours]
cours
18. SELECT
FROM
COUNT(*) AS [nombre total de participants]
participer
19. SELECT
FROM
WHERE
COUNT(*) AS [nombre participants au cours 026]
participer
code_cours = 026
20. SELECT
AVG(droit_inscip) AS [droit dinscription moyen],
AVG(prime_resp) AS [prime de responsabilit moyenne],
AVG(tarif_hr) AS [tarif heur moyen]
cours
FROM
matricule LIKE 1968???????
21. SELECT
FROM
GROUP BY
niveau, COUNT(*) AS [nombre de cours]
cours
niveau
22. SELECT
FROM
WHERE
code_cours
cours
droit_inscrip = (SELECT MAX(droit_inscrip)
FROM
cours)
23. SELECT
FROM
WHERE
code_cours
cours
droit_inscrip = (SELECT MIN(droit_inscrip)
FROM
cours)
24. SELECT
FROM
SUM(nbre_heures) AS [total des heures prestes]
animer
25. SELECT
FROM
WHERE
SUM(nbre_heures) AS [total des heures prestes pour le cours 005]
animer
code_cours = 005
Michle Schanen
Informatique 13CG
26. SELECT
FROM
WHERE
27. SELECT
FROM
GROUP BY
ORDER BY
SUM(nbre_heures)
AS [total des heures prestes par lanimateur 19800202222]
animer
matriucle_animateur = 19800202222
matricule_animateur, SUM(nbre_heures)
AS [nombre total d'heures prestes]
animer
matricule_animateur
matricule_animateur
28. SELECT
FROM
GROUP BY
code_entreprise, COUNT(*) AS [nombre de participants]
participants
code_entreprise
29. SELECT
FROM
GROUP BY
HAVING
matricule_animateur, SUM(nbre_heures) AS [nombre d'heures prestes]
animer
matricule_animateur
SUM(nbre_heures) >10
30. SELECT
FROM
WHERE
GROUP BY
HAVING
matricule_animateur, SUM(nbre_heures) AS [nombre d'heures prestes]
animer
matricule_animateur like "1968*"
matricule_animateur
SUM(nbre_heures) >10;
31. SELECT
FROM
WHERE
code_cours, nom, prnom
animateurs, cours
animateurs.matricule_animateur = cours.matricule_animateur
32. SELECT
FROM
WHERE
code_cours, dsignation, nom, prnom
animateurs , thmes, cours
thmes.code_thme = cours.code_thme
AND animateurs.matricule_animateur = cours.matricule_animateur
33. SELECT
FROM
WHERE
GROUP BY
matricule, nom, prnom, COUNT(*) AS [nombre de cours]
participants , participer
[Link] = [Link]
matricule, nom, prnom
34. SELECT
animateurs.matricule_animateur, nom, prnom, SUM(nbre_heures)
AS [nombre total d'heures prestes]
animateurs, animer
animateurs.matricule_animateur = animer.matricule_animateur
animateurs.matricule_animateur, nom, prnom
FROM
WHERE
GROUP BY
35. SELECT
FROM
WHERE
GROUP BY
ORDER BY
Michle Schanen
entreprises.code_entreprise, [Link], COUNT(*)
AS [nombre de participants]
entreprises, participants
entreprises.code_entreprise = participants.code_entreprise
entreprises.code_entreprise, [Link]
[Link]
Informatique 13CG
36. SELECT
FROM
WHERE
ORDER BY
37. SELECT
FROM
WHERE
GROUP BY
38. SELECT
FROM
WHERE
GROUP BY
HAVING
39. SELECT
FROM
WHERE
GROUP BY
HAVING
Michle Schanen
[Link], prnom, [Link], [Link]
thmes, cours, participants, participer, entreprises
[Link] = [Link]
AND entreprises.code_entreprise = participants.code_entreprise
AND cours.code_cours = participer.code_cours
AND thmes.code_thme = cours.code_thme
[Link], thmes.code_thme
nom, COUNT(*) AS [nombre de cours anim]
animateurs, animer
animateurs.matricule_animateur = animer.matricule_animateur
AND nom = [Saisir le nom de l'animateur]
nom
libell
catgories, thmes, cours
catgories.code_catgorie = thmes.code_catgorie
AND thmes.code_thme = cours.code_thme
libell
COUNT(*) >3
nom
animer, animateurs
animateurs.matricule_animateur = animer.matricule_animateur
nom
COUNT(*) > ( SELECT COUNT(*)
FROM
animer, animateurs
WHERE animateurs.matricule_animateur =
animer.matricule_animateur
AND nom = [Saisir le nom de l'animateur]