Vous êtes sur la page 1sur 1

Nom :

Prénom :

QCM SQL Cours 2


Cochez la ou les bonnes réponses :

Question 1 : Parmi ces requêtes, lesquelles sont correctes pour faire une jointure :
A B
+idB
+id +id
+Attr1 * 1 +Attr2

a) SELECT A.attr1, B.Attr2 FROM A,B WHERE A.idB = B.id;


b) SELECT A.attr1, B.Attr2 FROM A JOIN B ON B.id=A.idB;
c) SELECT A.attr1, B.Attr2 FROM A JOIN B WHERE B.id=A.idB;
d) SELECT A.attr1, B.Attr2 FROM A,B JOINTURE ON A.idB = B.id;
Réponse 1 : a) □ b) □ c) □ d) □
Question 2 : Quelles sont la ou les requêtes permettant de récupérer la
liste des communes dont la moyenne d’âge est supérieure à 50 ans ? Habitants
a) SELECT Commune FROM Habitants WHERE AVG(Age)>50 ;
+Prenom
b) SELECT Commune, AVG(Age) AS age_moyen FROM Habitants GROUP +Nom
BY Commune HAVING age_moyen>50; +Age
+Commune
c) SELECT Commune, AVG(Age) FROM Habitants WHERE age>50 GROUP
BY Commune;
d) SELECT Commune, AVG(Age) AS age_moyen FROM Habitants WHERE
age_moyen>50 GROUP BY Commune;
Réponse 2 : a) □ b) □ c) □ d) □
Question 3 : Que fait-on lorsqu’il y a une cardinalité N-N entre 2 tables :
a) On fait des requêtes avec auto-jointure pour récupérer toutes les colonnes.
b) On crée une table de jonction qui aura comme colonnes des clés étrangères vers les 2 tables
d’origines.
c) On fusionne les deux tables.
d) On élimine les doublons avec une requête UNION DISTINCT pour que la cardinalité redevienne
1-N ou N-1.
Réponse 3 : a) □ b) □ c) □ d) □
Question 4 : Pour récupérer tous les enregistrements de deux tables ayant la même structure sans
doublons, il faut utiliser :
a) (SELECT * FROM Table1) UNION UNIQUE (SELECT * FROM Table2) ;
b) SELECT DISTINCT * FROM Table1, Table2;
c) (SELECT * FROM Table1) INTERSECT (SELECT * FROM Table2) ;
d) (SELECT * FROM Table1) UNION DISTINCT (SELECT * FROM Table2) ;
Réponse 4 : a) □ b) □ c) □ d) □
Question 5 : Quelle(s) sont les requêtes renvoyant les étudiants nés entre 1990 et 2000 ?
a) SELECT * FROM Students WHERE Birth_year<>1990 AND Birth_year<>2000;
b) SELECT * FROM Students WHERE Birth_year BETWEEN 1990 and 2000;
c) SELECT * FROM Students WHERE Birth_year IN(1990,2000);
d) SELECT * FROM Students WHERE Birth_year>=1990 AND Birth_year<=2000;
Réponse 5 : a) □ b) □ c) □ d) □