Module : Base de Données Relationnelle
Contrôle N°1 Semestre
Soit la base de données suivante :
Ecrire les commandes SQL permettant de rechercher :
1. La liste de tous les étudiants.
select * from Etudiant
2. Nom et coefficient des matières.
select nom_matiere , coefficient from Matiere
3. Les numéros des cartes d’identité des étudiants dont la moyenne entre 7 et 12
SELECT numero_carte_etudiant FROM Note, Matiere mat
WHERE Note.code_matiere=Mat.code_matiere
GROUP BY numero_carte_etudiant
HAVING (sum(note_examen*coefficient)/sum(coefficient)) between 7 and 12
4. La liste des étudiants dont le nom commence par ‘ben’.
select * from Etudiant where Nom like "Ben%"
5. Le nombre des étudiants qui ont comme matière ‘12518’.
select * from Note where
code_matiere=12518
6. La somme des coefficients des matières.
select sum(coefficient) from Matiere
7. Les noms des étudiants qui une note_examen >10.
SELECT distinct Nom FROM Note , Etudiant
WHERE Note.numero_carte_etudiant=Etudiant.numero_carte_etudiant AND
note_examen >10
8. Afficher les noms et les coefficients des matières étudier par l’étudiant "01234568".
SELECT nom_matiere , coefficient FROM Note , Matiere
2WHERE Note.numero_carte_etudiant="01234568"
Exerciec 2
Afin d’assurer la qualité des produits attendues par les Clients, l’entreprise cherche à optimiser la
gestion des pannes pouvant survenir dans les infrastructures de production nécessaires à la fabrication
du Ciment. voici un extrait de la base de données :
TECHNICIEN (idTech, nom, prénom, spécialité)
STATION (idstat, nom, Position, coordLat, coordLong,phase)
MACHINE (idmach, état, dateMiseEnService, dateDernièreRévision, #idStat)
TYPEINCIDENT (id, description, tempsRéparationPrévu)
INCIDENT (idInd, remarques, dateHeure, dateHeureCloture,#idmach,#idType)
INTERVENTION (idInterv, dateHeureDébut, dateHeureFin, #idInd, #idTech)
1. Rédiger la requête SQL permettant d’obtenir la liste par ordre alphabétique des noms et
prénoms des techniciens ayant réalisé une intervention sur la Machine identifiée par Ber001.
SELECT nom , prenom FROM TECHNICIEN tec , INCIDENT inc , INTERVENTION
int
WHERE [Link]=[Link] and [Link]=[Link] and
idmach="Ber001"
ORDER BY nom ASC , prenom ASC
2. Rédiger la requête SQL permettant d’obtenir la liste des phases ayant connue un incident de
"sur-chauffage" pour le mois Mai 2019.
SELECT distinct phase FROM STATION st, MACHINE mch, INCIDENT inc, TYPEINCDENT
type
WHERE [Link]=[Link] AND [Link]=[Link] AND [Link]=[Link]
AND [Link]="sur-chauffage" AND MONTH(dateHeure)=5 AND
YEAR(dateHeure)=2019
3. Rédiger la requête SQL permettant d’obtenir le nombre d’incidents non clôturés.
SELECT count(*) FROM INCIDENT WHERE dateHeureCloture is NULL
4. Rédiger la requête SQL permettant d’obtenir la liste des noms des stations ayant eu plus de dix
incidents.
SELECT nom FROM STATION st, MACHINE mch, INCIDENT inc
WHERE [Link]=[Link] and [Link]=[Link]
GROUP by nom
having count (*) >10