Exercice récapitulatif en Langage SQL (Suite...)
Rédigé par GC Team, Publié le 13 Décembre 2011, Mise à jour le Samedi, 17 Décembre 2022 19:11Objectif :
Créer des requêtes en SQL
Travail à faire:
ETUDIANT (Numetu, Nometu, Dtnaiss, Cdsexe)
SEXE (Cdsexe, Lbsexe)
ENSEIGNANT (Numens, Nomens, Grade, Ancien)
MATIERE (Numat, Nomat, Coeff, Numens)
NOTES (Numetu, Numat, Note)
À partir de la Base de données ETUDIANTS ci dessus, écrire les requêtes SQL permettant de répondre aux questions suivantes.
10. Afficher le nom, le numéro et le sexe des étudiants qui ont une note en informatique supérieure à leur note de Mathématiques.
11. Afficher le nom des couples, nom du garçon nom de la fille, dont la différence d'âge ne dépasse pas 6 mois (180 jours).
12. Pour les étudiants n'ayant pas de note dans une matière, afficher le numéro le nom de l'étudiant et le nom de la matière concernée.
13. Afficher, les matières pour lesquelles la moyenne des notes est inférieure à 10. Afficher le nom de l'enseignant correspondant.
14. Afficher, pour chaque matière, qu'elle est la meilleure note et quel est l'étudiant qui l'a obtenue.
15. Afficher, pour chaque sexe (Homme, Femme) la moyenne des notes dans la matière enseignée par Julie Boyer.
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 45 46 47 48 49 50 51 |
Requête 10: SELECT Nometu, E.Numetu, Cdsexe FROM ETUDIANT E, NOTES N, MATIERE M WHERE E.Numetu=N.Numetu AND N.Numat=M.Numat AND Nomat='Informatique' AND Note > ALL (SELECT Note FROM NOTES N, MATIERE M WHERE N.Numat=M.Numat AND Nomat='Mathématiques' AND N.Numetu=E.Numetu); Requête 11: SELECT E1.Nometu,E2.Nometu FROM ETUDIANT E1, ETUDIANT E2 WHERE E1.CdSexe='H' AND E2.CdSexe='F' AND DATEDIFF(E1.Dtnaiss,E2.Dtnaiss) BETWEEN -180 AND 180; Requête 12: SELECT E.Numetu, Nometu, Nomat FROM ETUDIANT E LEFT OUTER JOIN NOTES N ON E.Numetu=N.Numetu LEFT OUTER JOIN Matiere M ON N.Numat=M.Numat OR N.Numat IS NULL WHERE Note IS NULL; Requête 13: SELECT Nomens, Nomat, Avg(note) FROM ENSEIGNANT E, MATIERE M, NOTES N WHERE E.Numens=M.Numens AND M.Numat=N.Numat GROUP BY Nomens, Nomat HAVING Avg(note)< 10; Requête 14: SELECT Nomat, Nometu, Note FROM MATIERE M, NOTES N, ETUDIANT E WHERE N.Numat=M.Numat AND E.Numetu=N.Numetu AND Note=(SELECT Max(Note) FROM NOTES E1 WHERE E1.Numat=M.Numat); Requête 15: SELECT Nomat, Nometu, Note FROM MATIERE M, NOTES N, ETUDIANT E WHERE N.Numat=M.Numat AND E.Numetu=N.Numetu AND Note=(SELECT Max(Note) FROM NOTES E1 WHERE E1.Numat=M.Numat); |