Les requêtes SELECT - Base de données STAGIAIRES
Objectif
L’objectif de cet exercice est d’interroger une base de données de gestion des notes en utilisant des requêtes SELECT Mono-Table. Les éléments à traiter sont :
- les sélections,
- les projections,
- le tri,
- les groupements,
- les fonctions d’agrégats et les opérateurs.
Avant de commencer
Pour cet exercice, utilisez la base de données gestion-notes-stagiaires dont le schéma relationnel est le suivant :
Travail à faire:
Ecrivez les requêtes permettant d'afficher :
1. La liste des stagiaires ;
2. La liste des examens ;
3. Les numéros de tous les stagiaires ;
4. Les numéros des examens munis de la date de réalisation ;
5. La liste des stagiaires triée par nom dans un ordre décroissant ;
6. La liste des examens réalisés dans les salles 'A2' ou 'A3';
7. La liste des examens pratiques ;
8. La liste précédente triée par date de passation de l'examen ;
9. La liste des examens triée par salle dans un ordre croissant et par date dans un ordre décroissant ;
10. Les numéros et les notes des examens passé par le stagiaire 'S01';
11. Les numéros et les notes des examens passé par le stagiaire 'S01' et dont la note est supérieure ou égale à 15 ;
12. Les stagiaires dont le nom contient la lettre 'u' ;
13. Les prénoms des stagiaires dont le prénom se termine par la lettre 'm' ;
14. Les prénoms des stagiaires dont le prénom se termine par la lettre 'm' ou 'd' ;
15. Les noms et prénoms des stagiaires dont le nom se termine par la lettre 'i' et le prénom par 'm' ;
16. Les noms des stagiaires dont la deuxième lettre est 'a' ;
17. [3 méthodes] Les noms des stagiaires dont la deuxième lettre n'est pas 'a' ;
18. La liste des examens pratiques réalisés dans une salle commençant par la lettre 'A';
19. Toutes les salles dont on a réalisé au moins un examen ;
20. La liste précédentes sans doublons ;
21. Pour chaque examen, la première et la dernière note ;
22. Pour l'examen 'E05', la première et la dernière note ;
23. Pour chaque examens, l'écart entre la première et la dernière note ;
24. Le nombre d'examens pratiques ;
25. La date du premier examen effectué ;
26. Le nombre de stagiaires dont le nom contient 'b' ou 's' ;
27. Pour chaque stagiaires la meilleure note dans tous les examens ;
28. Pour chaque date enregistrée dans la base de données le nombre d'examens ;
29. Pour chaque salle le nombre d'examens réalisés ;
30. Le nombre d'examens réalisés dans la salle 'B5';
31. Toutes les salles dont on a effectué au moins deux examens ;
32. Toutes les salles dont on a effectué exactement 3 examens ;
33. Le nombre d'examens réalisés dans les salle commençant par la lettre 'A' ;
34. Pour chaque salle commençant par la lettre 'A', le nombre d'examens ;
35. Les salles qui commence par 'A' et dont on a effectué deux examens.
//Q1 select * from Stagiaires; //Q5 select * from Stagiaires order by NumS DESC; //Q6 select * from Examens where Salle='A2' or Salle='A3'; select * from Examens where Salle in ('A2', 'A3'); //Q7 select * from Examens where TypeE='P'; //Q8 select * from Examens where TypeE='P' order by Date; //Q9 select * from Examens order by Salle, Date DESC; //Q11 select NumS, NumE, Note from PasserExamen where NumS='S01' and Note >= 15; //Q12 select * from Stagiaires where NomS like '%u%'; //Q13 select distinct PrenomS from Stagiaires where PrenomS like '%m'; //Q14 select PrenomS from Stagiaires where PrenomS like '%m' or PrenomS like '%d' ; select PrenomS from Stagiaires where PrenomS like '%[dm]' ; //Q16 select NomS from Stagiaires where NomS like '_a%'; //Q17 select NomS from Stagiaires where NomS not like '_a%'; select NomS from Stagiaires where NomS like '_[b-zB-Z ]%'; select NomS from Stagiaires where NomS like '_[^a]%'; //Q19 select Salle from Examens //Q20 select distinct Salle from Examens //Q21 select NumE, max(Note) 'Premiere Note', min(Note) 'Derniere Note' from PasserExamen group by NumE; //Q22 select NumE, max(Note) as 'Premiere Note', min(Note) 'Derniere Note' from PasserExamen where NumE='E05' group by NumE ; //Q23 select NumE, max(Note) - min(Note) 'Ecart' from PasserExamen group by NumE; //Q24 select count(*) [Nombre Examen Pratique] from Examens where TypeE='P'; //Q25 select min(Date) as 'Date 1er Examen' from Examens; //Q26 select count(*) 'Nb stagiaire..' from Stagiaires where NomS like '%[bs]%'; //Q27 select NumS, max(Note) from PasserExamen group by NumS; //Q28 select Date, count(*) as 'Nb Examen' from Examens group by Date; //Q29 select Salle, count(*) as 'Nb Examen' from Examens group by Salle; //Q30 select count(*) as 'Nb Examen' from Examens where Salle='B5'; //Q31 select Salle, count(*) as 'Nb Examen' from Examens group by Salle having count(*) > 1; //Q32 select Salle, count(*) as 'Nb Examen' from Examens group by Salle having count(*) = 3; //Q33 select count(*) as 'Nb Examen' from Examens where Salle like 'A%'; //Q34 select Salle, count(*) as 'Nb Examen' from Examens where Salle like 'A%' group by Salle; //Q35 select Salle, count(*) as 'Nb Examen' from Examens where Salle like 'A%' group by Salle having count(*) = 2 ;