Dsql 24 25
Structure
-
Compléter le diagramme suivant en soulignant les clés primaires et en plaçant un
#devant les clés étrangères.Correction
-
Donner le schéma relationnel de cette base de données.
Correction
ecole(nom text,ville text)
admission(#nom text,#concours_id text,places int,dernier_admis int)
concours(id int, nom text, filiere text, inscrit int)
epreuve(id int, nom text, duree float, coefficient float, oral bool,#concours_id text)
epreuve_matiere(#epreuve_id int,matiere text)
Requêtes d'interrogation - LVL 1
Écrire en sql les requêtes qui permettent de trouver les informations suivantes:
-
Les noms des concours dans la base de données.
Correction
SELECT nom FROM concours; -
Les noms des épreuves dont les coefficients sont supérieurs à 10.
Correction
SELECT nom FROM epreuve WHERE coefficient>=10; -
Les noms des écoles qui proposent un concours dans l'ordre alphabétique.
Correction
SELECT ecole_nom FROM admission ORDER BY ecole_nom ASC;
Requêtes d'interrogation - LVL 2
Écrire en sql les requêtes qui permettent de trouver les informations suivantes:
-
Les épreuves écrites de
cmp(identifiant du Concours Mines-Ponts) : filière, matière, durée et coefficient.Correction
SELECT concours.filiere, epreuve_matiere.matiere, epreuve.duree, epreuve.coefficient FROM epreuve JOIN epreuve_matiere ON epreuve.id=epreuve_matiere.epreuve_id JOIN concours ON epreuve.concours_id=concours.id WHERE concours.nom='cmp' and oral='False'; -
Le coefficient total des mathématiques du concours
ccinp.Correction
SELECT sum(coefficient) FROM epreuve JOIN epreuve_matiere ON epreuve.id=epreuve_matiere.epreuve.id JOIN concours ON epreuve.concours_id=concours.id WHERE matiere='mathematiques' and concours.nom='ccinp'; -
Pour chaque concours, afficher le nom, la filière, le nombre d'épreuves écrites et leur durée totale.
Correction
SELECT concours.nom, concours.filiere, count(*), sum(duree) FROM epreuve JOIN concours ON concours.id=epreuve.concours_id WHERE oral='False' GROUP BY epreuve.concours_id;
Requêtes de modification
Écrire en sql des requêtes afin de modifier la base de données comme suit:
-
L'
ESCPa quitté Paris et a déménagé dans ses nouveaux locaux de Strasbourg.Correction
UPDATE ecole SET ville = 'Strasbourg' WHERE nom='ESCP'; -
Une nouvelle école vient d'ouvrir dans la ville de
Saclay, elle s'appelleÉcole Supérieure des Sciences Numériques.Correction
INSERT INTO ecole VALUES ('ESSN','Saclay') -
L'école supérieure
EIDGferme ses portes.Correction
Attention, on doit commencer par supprimer toute référence à l'école dans la relation
admission.DELETE FROM admission WHERE ecole_nom='EIDG'; DELETE FROM ecole WHERE nom='EIDG';