Vous êtes sur la page 1sur 6

Université Abdelmalek Essaâdi

Faculté des Sciences et Techniques – Tanger


_____________________________________________________________________________

SI_BDD : Systèmes d’Information et Base de données:


Feuille de Correction de TD8 (SQL)
MIP_S4 – Année universitaire 2022-2023

• Nous considérons le schéma de base de données de gestion de notes:

1. Donner les requêtes SQL permettant de créer les tables du MLD précédent
• Créer la table etudiant
CREATE TABLE `etudiant` (
`cne` int(20) NOT NULL,
`nom_etud` varchar(20) NOT NULL,
`prenom` varchar(20) NOT NULL,
`id_grp` int(20) NOT NULL
);
• Créer la table groupe
CREATE TABLE `groupe` (
`id_grp` int(20) NOT NULL,
`des_grp` varchar(50) NOT NULL,
`annee_grp` varchar(50) NOT NULL
);
• Créer la table module
CREATE TABLE `module` (
`id_mod` int(20) NOT NULL,
`des_mod` varchar(20) NOT NULL
);

Page 1
Université Abdelmalek Essaâdi
Faculté des Sciences et Techniques – Tanger
_____________________________________________________________________________

• Créer la table notes


CREATE TABLE `notes` (
`cne_etd` int(20) NOT NULL,
`id_mod` int(20) NOT NULL,
`sem` varchar(20) NOT NULL,
`note` int(20) NOT NULL
);
• Créer les clés primaires de chaque table à la base de données :
ALTER TABLE `etudiant` ADD PRIMARY KEY (`cne`);
ALTER TABLE `groupe` ADD PRIMARY KEY (`id_grp`);
ALTER TABLE `module` ADD PRIMARY KEY (`id_mod`);
ALTER TABLE `notes` ADD PRIMARY KEY (`cne_etd`,`id_mod`);
• Créer les clés étrangères de la base de données selon le schéma au dessus :
ALTER TABLE `notes` ADD CONSTRAINT `fk1` FOREIGN KEY (`cne_etd`)
REFERENCES `etudiant` (`cne`),
ADD CONSTRAINT `fk2` FOREIGN KEY (`id_mod`) REFERENCES `module`
(`id_mod`);
ALTER TABLE `etudiant` ADD CONSTRAINT `fk3` FOREIGN KEY (`id_grp`)
REFERENCES `groupe` (`id_grp`);

2. Insérer les informations précédentes dans les tables créées.


• Alimenter la table module :
INSERT INTO `module` (`id_mod`, `des_mod`) VALUES
(1, 'Chime analytique'),
(2, 'Chime organique'),
(3, 'Algèbre1'),
(4, 'Analyse1'),
(5, 'Mécanique du point'),
(6, 'Optique'),
(7, 'Algo & Programmation'),
(8, 'Techniques de communication');
• Alimenter la table groupe :
INSERT INTO `groupe` (`id_grp`, `des_grp`, `annee_grp`) VALUES
(1, 'BCG1', '2019'),
(2, 'BCG2', '2019'),
(3, 'CI1', '2020'),
(4, 'LSTGI1', '2020'),
(5, 'LSTMA', '2018'),
(6, 'MIPC1', '2018'),
(7, 'MIPC2', '2017'),

Page 2
Université Abdelmalek Essaâdi
Faculté des Sciences et Techniques – Tanger
_____________________________________________________________________________

(8, 'MIPC3', '2017'),


(9, 'MIPC4', '2017');
• Alimenter la table etudiant :
INSERT INTO `etudiant` (`cne`, `nom_etud`, `prenom`, `id_grp`) VALUES
(1234243, 'AMRI', 'Amal', 6),
(1234348, 'AGDI', 'Adnan', 6),
(1234543, 'MRABET', 'Karim', 6),
(1234548, 'SLIMANI', 'Amal', 8),
(1234567, 'ALAOUI', 'Anass', 6),
(1234568, 'KRAIMI', 'Tarik', 7),
(1234578, 'DRAOUI', 'Kamal', 3),
(1234768, 'TAOUNATI', 'Hiba', 7),
(1324567, 'ELYUSUFI', 'Yasyn', 3);
• Alimenter la table notes :
INSERT INTO `notes` (`cne_etd`, `id_mod`, `sem`, `note`) VALUES
(1234243, 4, 'S1', 15),
(1234348, 4, 'S1', 13),
(1234543, 1, 'S1', 13),
(1234543, 2, 'S1', 16),
(1234543, 3, 'S1', 14),
(1234543, 6, 'S1', 15),
(1234548, 5, 'S2', 10),
(1234567, 1, 'S1', 15),
(1234567, 5, 'S1', 16),
(1234567, 6, 'S2', 16),
(1234568, 1, 'S1', 16),
(1234578, 8, 'S1', 16),
(1234768, 5, 'S1', 6),
(1324567, 3, 'S1', 12),
(1324567, 4, 'S1', 13);

3. Afficher les étudiants par groupe et année universitaire;

select cne,nom_etud,prenom,annee_grp, G.id_grp,G.des_grp from groupe as G,


etudiant as e where G.id_grp= e.id_grp group by G.id_grp,nom_etud,prenom,cn
e, annee_grp

Page 3
Université Abdelmalek Essaâdi
Faculté des Sciences et Techniques – Tanger
_____________________________________________________________________________

Résultat :

4. Afficher la moyenne de chaque étudiant du groupe ‘MIPC1’ (Année 2018) dans le


semestre S1 ;

select cne,nom_etud,prenom, avg(note) as moyenne from etudiant as e,notes a


s n, groupe as g where e.cne= n.cne_etd and g.id_grp=e.id_grp and g.des_grp
='MIPC1' and n.sem='S1' and annee_grp=2018 group by cne,nom_etud,prenom
Résultat :

5. Afficher les notes de tous les étudiants du groupe ‘MIPC1’ (Année 2018) dans le Module
Analyse1 ;

select cne,nom_etud,prenom, m.des_mod,g.des_grp,sem, note from etudiant as


e,notes as n, groupe as g, module as m where e.cne= n.cne_etd and m.id_mod=
n.id_mod and e.id_grp=g.id_grp and g.des_grp='MIPC1' and sem='S1' and annee
_grp=2018 and m.des_mod='Analyse1' group by cne,nom_etud,prenom, note,g.id_
grp,sem

Résultat :

6. Afficher par semestre la moyenne de l’étudiant 1234568 ;

select e.cne,nom_etud,prenom,sem, avg(note) as moyenne from etudiant as e,n


otes as n where e.cne= n.cne_etd and e.cne='1234348' group by sem,e.cne,nom
_etud,prenom

Page 4
Université Abdelmalek Essaâdi
Faculté des Sciences et Techniques – Tanger
_____________________________________________________________________________

Résultat :

7. Afficher le CNE, nom et le prénom de l’étudiant du groupe MIPC1 (Année 2018) qui est
classé le premier dans le semestre S1 ;

select cne,nom_etud,prenom,avg(note) as moyenne,g.id_grp from etudiant as e


,notes as n, groupe as g,module as m where e.cne= n.cne_etd and e.id_grp =g
.id_grp and g.des_grp='MIPC1' and sem='S1' and annee_grp=2018 group by cne,
nom_etud,prenom,g.id_grp having avg(note)>=ALL(select avg(note) as moyenne
from etudiant as e,notes as n, groupe as g,module as m where e.cne= n.cne_e
td and e.id_grp=g.id_grp and g.des_grp='MIPC1' and sem='S1' and annee_grp=2
018 group by cne)

Résultat :

8. Afficher les étudiants dont les noms contiennent ‘a’ ;

SELECT * from etudiant where trim(nom_etud) like '%a%'

Résultat :

9. Afficher les étudiants du groupe MIPC1 de l’année 2018 ayant des notes, du module
Algèbre 1, comprises entre 12 et 16 ;

select cne,nom_etud,prenom, note,g.des_grp from etudiant as e,notes as n, g


roupe as g,module as m where e.cne= n.cne_etd and m.id_mod=n.id_mod and e.i
d_grp= g.id_grp and n.sem='S1' and g.annee_grp=2018 and g.des_grp='MIPC1' a
nd m.des_mod='Algèbre1' and note between 12 and 16 group by cne,nom_etud,pr
enom,note,g.id_grp

Page 5
Université Abdelmalek Essaâdi
Faculté des Sciences et Techniques – Tanger
_____________________________________________________________________________

Résultat :

10. Ajouter à tous les étudiants du groupe MIPC1 de l’année 2018 un point à la note du
module ‘Optique’ ;

UPDATE notes SET note = note+1 WHERE id_mod in(select m.id_mod from groupe
as g, notes as n, module as m, etudiant as e where e.cne = n.cne_etd and e.
id_grp =g.id_grp and n.id_mod=m.id_mod and g.des_grp='MIPC1' and g.annee_gr
p=2018 and m.des_mod='Optique')

Résultat:
Vérifions la mise à jour !
select m.id_mod, e.cne, e.nom_etud, m.des_mod, n.note from groupe as g, not
es as n, module as m, etudiant as e where e.cne = n.cne_etd and e.id_grp =g
.id_grp and n.id_mod=m.id_mod and g.des_grp='MIPC1' and g.annee_grp=2018 an
d m.des_mod='Optique'

 les notes ont été bien changées !


11. Afficher les étudiants du groupe MIPC2 de l’année 2017 semestre S1, qui n’ont pas validé
le module ‘Mécanique du point’ ;
select cne,nom_etud,prenom, g.des_grp, m.des_mod, n.note from etudiant as e
,notes as n, groupe as g,module as m where e.cne= n.cne_etd and m.id_mod=n.
id_mod and e.id_grp= g.id_grp and n.sem='S1' and g.annee_grp=2017 and g.des
_grp='MIPC2' and m.des_mod='Mécanique du point' and n.note < 7

Résultat:

Page 6

Vous aimerez peut-être aussi