Académique Documents
Professionnel Documents
Culture Documents
Table : lpecom_livres
id_livre titre isbn_10 auteur prix
1 Forteresse digitale 2709626306 Dan Brown 20.5
2 La jeune fille et la nuit 2253237620 Guillaume Musso 21.9
3 T'choupi se brosse les dents 2092589547 Thierry Courtin 5.7
4 La Dernière Chasse 2226439412 Jean-Christophe Grangé 22.9
5 Le Signal 2226319484 Maxime Chattam 23.9
EXERCICE 1
EXERCICE 2
Quelle requête utiliser pour sélectionner uniquement les livres qui ont un prix
strictement supérieur à 20 de la table lpecom_livres ?
EXERCICE 3
EXERCICE 4
EXERCICE 6
EXERCICE 7
EXERCICE 8
Quelle requête utiliser pour sélectionner uniquement les 3 premiers résultats sans le
tout premier de la table lpecom_livres ?
II / DEUXIÈME PARTIE
Ci-après les deux tables à utiliser pour la deuxième partie des exercices.
Table : lpecom_etudiants
31 Paul Bismuth
32 Jean Michel
33 Ted Bundy
Table : lpecom_etudiants
35 Joséphine Henry
Table : lpecom_examens
id_exame
id n id_etudiant matiere note
788 45 30 Histoire- 10.5
Geographie
789 87 33 Mathématiques 14
790 87 34 Mathématiques 4
791 45 31 Histoire- 15.5
Geographie
792 45 32 Histoire- 8
Geographie
793 87 31 Mathématiques 14
794 45 33 Histoire- 9.5
Geographie
795 45 36 Histoire- 13
Geographie
796 45 34 Histoire- 17
Geographie
797 87 30 Mathématiques 7.5
EXERCICE 1
Quelle requête utiliser pour afficher l'id des étudiants qui ont participés à au moins
un examen ?
EXERCICE 2
Quelle requête utiliser pour compter le nombre d'étudiants qui ont participés à au
moins un examen ?
EXERCICE 3
Quelle requête utiliser pour calculer la moyenne de l'examen portant l'id : 45 ?
EXERCICE 4
Quelle requête utiliser pour récupérer la meilleure note de l'examen portant l'id : 87 ?
EXERCICE 5
Quelle requête utiliser pour afficher l'id des étudiants qui ont eu plus de 11 à
l'examen 45 ou plus de 12 à l'examen 87 ?
EXERCICE 6
EXERCICE 7
EXERCICE 8
EXERCICE 9
Quelle requête utiliser pour afficher les 3 meilleures examens, du meilleur au moins
bon, avec le prenom et le nom de l'étudiant associé ?
III / TROISIÈME PARTIE
Ci-après les trois tables à utiliser pour la troisième partie des exercices. Pour cette
nouvelle partie d'exercices, il est préférable de ne pas utiliser la console pour
s'entrainer à comprendre les requêtes.
Table : lpecom_realisateurs
id nom prenom sexe
16 Scott Ridley 0
22 Aronofsky Darren 0
47 Jenkins Patty 1
66 Ritchie Guy 0
Table : lpecom_films
id nom id_realisateur
121 Requiem for a Dream 22
546 Gladiator 16
666 Fight Club 61
775 Blade Runner 16
984 Seul sur Mars 16
986 Black Swan 22
987 Wonder Woman 47
988 The Tomorrow Man 85
Table : lpecom_films_notes
id id_film note
1 546 4.5
2 546 2.5
3 775 5
4 984 3.5
5 987 3.1
6 666 4.2
7 986 3
8 986 4.3
9 121 1
EXERCICE 1
SQL
SELECT id, prenom, nom
FROM lpecom_realisateurs
WHERE nation = "us"
AND sexe = 1;
EXERCICE 2
SQL
SELECT *
FROM lpecom_realisateurs
WHERE sexe = "0"
ORDER BY nom DESC
LIMIT 1;
EXERCICE 3
SQL
SELECT f.id, f.nom AS film, r.prenom, r.nom
FROM lpecom_films f
INNER JOIN lpecom_realisateurs r ON f.id_realisateur = r.id
ORDER BY f.id ASC;
EXERCICE 4
SQL
SELECT f.id, f.nom AS film, r.prenom, r.nom
FROM lpecom_films f
LEFT JOIN lpecom_realisateurs r ON f.id_realisateur = r.id
ORDER BY f.id ASC;
EXERCICE 5
SQL
SELECT f.id, f.nom, fn.note
FROM lpecom_films f
LEFT JOIN lpecom_films_notes fn ON f.id = fn.id_film
ORDER BY f.id ASC;
EXERCICE 6
SQL
SELECT f.nom, r.prenom AS realisateur_prenom, r.nom AS realisateur_nom,
AVG(fn.note) AS moyenne_note
FROM lpecom_films f
INNER JOIN lpecom_realisateurs r ON f.id_realisateur = r.id
INNER JOIN lpecom_films_notes fn ON f.id = fn.id_film
WHERE f.id = 546;
EXERCICE 7
SQL
SELECT r.nation, AVG(fn.note) AS moyenne_note
FROM lpecom_films f
INNER JOIN lpecom_realisateurs r ON f.id_realisateur = r.id
INNER JOIN lpecom_films_notes fn ON f.id = fn.id_film
WHERE r.nation = "us";
EXERCICE 8
SQL
SELECT r.nation, MAX(fn.note) AS max_note
FROM lpecom_films f
INNER JOIN lpecom_realisateurs r ON f.id_realisateur = r.id
INNER JOIN lpecom_films_notes fn ON f.id = fn.id_film
WHERE r.nation = "uk";
IV / QUATRIÈME PARTIE
Ci-après les trois tables à utiliser pour la quatrième partie des exercices. Dans les
tableaux, il y a seulement un extrait aléatoire des données, donc toutes les lignes des
tables ne sont pas listées. Dernier point, dans la table lpecom_cities, il y a
uniquement les villes de la région Île-de-France. Pour cette nouvelle partie
d'exercices, vous pouvez bien évidemment utiliser la console afin de tester vos
requêtes.
Table : lpecom_cities
id department_code insee_code zip_code name gps_
30909 77 77281 77120 Mauperthuis 48.767000714
35448 95 95074 95000 Boisemont 49.018809629
31213 78 78185 78790 Courgent 48.896415000
35575 95 95554 95420 Saint-Gervais 49.165262403
35154 91 91184 91720 Courdimanche-sur-Essonne 48.417236904
Table : lpecom_departments
id region_code code name
2 32 02 Aisne aisne
80 75 79 Deux-Sèvres deux se
37 24 36 Indre indre
13 93 13 Bouches-du-Rhône bouche
34 75 33 Gironde gironde
Table : lpecom_regions
id code name
14 75 Nouvelle-Aquitaine nouvelle aquitaine
4 04 La Réunion la reunion
11 44 Grand Est grand est
17 93 Provence-Alpes-Côte d'Azur provence alpes cote daz
13 53 Bretagne bretagne
EXERCICE 1
Quelle requête utiliser pour retrouver la ville qui possède les coordonnées GPS
suivantes : 48.66913724637683, 1.87586057971015 ?
EXERCICE 2
Sans jointure, quelle requête utiliser pour calculer le nombre de villes que compte le
département de l'Essonne ?
EXERCICE 3
Sans jointure, quelle requête utiliser pour calculer le nombre de villes en Île-de-
France se terminant par "-le-Roi" ?
EXERCICE 4
EXERCICE 5
Sans jointure, quelle requête utiliser pour calculer le nombre de villes commençant
par "Saint-" en Seine-et-Marne ?
EXERCICE 6
EXERCICE 7
Sans jointure, quelles sont les deux villes de Seine-et-Marne à avoir le code postal
(zip_code) le plus grand ?
EXERCICE 8
EXERCICE 9
EXERCICE 10
Point important, il sera sans doute nécessaire d'utiliser AS pour obtenir le résultat
souhaité.
V / CINQUIÈME PARTIE
Ci-après les deux tables à utiliser pour la cinquième partie des exercices. Sujet
d'actualité des années 2020 et 2021, la pandémie du COVID-19 va être au coeur de
notre sujet pour cette nouvelle partie d'exercices. Nous utiliserons les
tables lpecom_covid et lpecom_regions. La table lpecom_covid liste le nombre
quotidien de personnes ayant reçu au moins une dose, par date d'injection, par
région. Les colonnes n_cum_dose1 et n_cum_dose2 s'occupent de cumuler le nombre
d'injection. Les colonnes couv_dose1 et couv_dose2 calculent la couverture vaccinale
des régions chaque jour.
Dans les tableaux, seul un extrait des données est affiché, donc toutes les lignes des
tables ne sont pas listées. Pour cette nouvelle partie d'exercices, vous pouvez bien
évidemment utiliser la console afin de tester vos requêtes.
Table : lpecom_covid
id id_region jour n_dose1 n_dose2 n_cum_dose1 n_cum_dose2
404 04 2021-04-06 676 633 40066 22082
202 02 2021-04-06 615 104 18330 5236
303 03 2021-04-06 301 300 10572 5199
505 06 2021-04-06 125 184 10236 4781
101 01 2021-04-06 227 166 10503 4027
Table : lpecom_regions
id code name
12 52 Pays de la Loire pays de la loire
10 32 Hauts-de-France hauts de france
4 04 La Réunion la reunion
3 03 Guyane guyane
14 75 Nouvelle-Aquitaine nouvelle aquitaine
EXERCICE 1
Quelle requête utiliser pour afficher toutes les données de vaccination uniquement
pour le 1er avril 2021 ?
EXERCICE 2
Quelle requête utiliser pour afficher toutes les données de vaccination uniquement
pour le 1er avril 2021 avec le nom de la région concernée ?
EXERCICE 3
EXERCICE 4
EXERCICE 5
EXERCICE 6
EXERCICE 7
Quelle requête utiliser pour afficher le record de vaccination deuxième dose en une
seule journée ? Avec une deuxième requête, afficher les informations de la région
concernée, dont son nom, ainsi que le jour du record.
EXERCICE 8
EXERCICE 9
Quelle requête utiliser pour afficher le nom de la région qui a le plus faible taux de
couverture de vaccination avec une dose ? Vous aurez besoin de 2 requêtes pour
répondre à la question.
EXERCICE 10
Quelle requête utiliser pour calculer la couverture moyenne entre les différentes
régions à la date la plus récente, pour les vaccinations une et deux doses ? Vous
renommez les colonnes de
résultats : couverture_dose1_avg et couverture_dose2_avg.
EXERCICE 11
Quelle requête utiliser pour afficher les données de vaccination des régions (avec leur
nom) qui possèdent une couveture vaccinale supérieure à 15 % pour la première
dose et supérieure à 5 % pour la deuxième dose ?
VI / SIXIÈME PARTIE
Dans cette sixième partie d'exercices, nous nous intéresserons toujours au même
sujet qui nous tient tous en haleine : le COVID-19. Dans cette nouvelle partie, nous
travaillerons sur les différents types de vaccins. Nous utiliserons les
tables lpecom_covid_vaccin, lpecom_covid_vaccin_type et lpecom_departments. La
table lpecom_covid_vaccin liste le nombre quotidien de personnes ayant reçu au
moins une dose, par date d'injection, par département. Il y a uniquement les données
pour les différents départements de la région Ile-de-France. Les
colonnes n_cum_dose1 et n_cum_dose2 s'occupent de cumuler le nombre d'injection.
Dans les tableaux, seul un extrait des données est affiché, donc toutes les lignes des
tables ne sont pas listées. Pour rappel, il y a uniquement les données pour les
différents départements de la région Ile-de-France. Pour cette nouvelle partie
d'exercices, vous pouvez bien évidemment utiliser la console afin de tester vos
requêtes.
Table : lpecom_covid_vaccin
id dep_code vaccin jour n_dose1 n_dose2 n_cum_d
2526 75 0 2021-04-06 5273 3457 370829
102 75 1 2021-04-06 4114 3384 240541
203 75 2 2021-04-06 3 70 7579
304 75 3 2021-04-06 1156 3 122709
2627 77 0 2021-04-06 2626 1915 142547
Table : lpecom_covid_vaccin_type
id nom
0 Tous vaccins
1 COMIRNATY Pfizer/BioNTech
2 Moderna
3 AstraZeneka
Table : lpecom_departments
id region_code code name
91 27 90 Territoire de Belfort territoire de belfort
41 75 40 Landes landes
105 COM 984 Terres australes et antarctiques françaises terres australes et an
18 24 18 Cher cher
90 27 89 Yonne yonne
EXERCICE 1
Sans jointure, quelle requête SQL utiliser pour afficher toutes les données de
vaccination du 14 février 2021 uniquement, pour le département de Seine-et-
Marne (77) ?
EXERCICE 2
Sans jointure, quelle requête SQL utiliser pour afficher le cumul de toutes les
données de vaccination pour tous les vaccins du 14 février 2021 uniquement,
pour les départements de l'Essonne (91) et de la Seine-et-Marne (77) ?
EXERCICE 3
Sans jointure, quelle requête utiliser pour afficher la somme des vaccinations
première dose réalisées uniquement avec le vaccin AstraZeneka pour le mois
de février 2021 pour le département de la Seine-et-Marne (77) ?
EXERCICE 4
Sans jointure, quelle requête utiliser pour afficher la somme des vaccinations
deuxième dose réalisées avec le vaccin AstraZeneka ou Moderna pour le mois
de mars 2021 pour le département de la Seine-et-Marne (77) ?
EXERCICE 5
Sans jointure, quelle requête utiliser pour afficher le record de vaccination première
dose avec un type de vaccin en une seule journée ? Avec une deuxième requête qui
exploitera une jointure, afficher toutes les informations possibles pour cette journée
record et sur le type de vaccin.
EXERCICE 6
Quelle requête permet de savoir quel département possède le plus grand nombre
d'injections première dose pour le vaccin AstraZeneka ? Avec une deuxième
requête, afficher uniquement les colonnes suivantes :
le nom du vaccin ;
le jour ;
le nom et le code du département ;
le nombre cumulé d'injections.
EXERCICE 8
le nom du vaccin ;
le jour ;
le nom et le code du département ;
le nombre cumulé d'injections.
EXERCICE 9
EXERCICE 10
Quelle requête utiliser pour afficher les départements (avec leur nom) qui possèdent
un nombre d'injections deuxième dose avec le vaccin Moderna supérieur à 9000 ou
un nombre d'injections première dose avec le vaccin COMIRNATY
Pfizer/BioNTech supérieur à 120000 ? Vous aurez besoin de deux jointures.
VII / SEPTIÈME PARTIE
Il est possible qu'un professionel de santé apparaisse plusieurs fois dans la table. En
effet, un professionel de santé peut pratiquer dans plusieurs communes. Il y a donc
des doublons sur la colonne id_pp_nat.
Table : lpecom_rpps
id id_pp_nat nom prenom code_profession lib_profession
8987 810100678332 CHOLLEY IRENE 10 Médecin
4169 810000143767 LIBRADER FRANCK 40 Chirurgien-Dentiste
4285 810005865349 ANTOLINI FABRICE 70 Masseur-Kinésithérapeute
8477 810003496881 PORTA FRANCOISE 40 Chirurgien-Dentiste
9601 810102261467 BOUCAUMONT INES 40 Chirurgien-Dentiste
EXERCICE 1
EXERCICE 2
Quelle requête SQL utiliser pour afficher pour tous les professionnels de santé avec le
code postal 77300 les colonnes
suivantes : id_pp_nat, prenom, nom, code_postal, ville, departement et région. Vous
aurez besoin de plusieurs jointures.