Vous êtes sur la page 1sur 16

I / PREMIÈRE PARTIE

Ci-après la table à utiliser pour la première partie des exercices.

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

Quelle requête utiliser pour afficher l'ensemble des enregistrements de la


table lpecom_livres ?

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

Quelle requête utiliser pour trier les enregistrements de la table lpecom_livres du


prix le plus élevé aux prix le plus bas ?

EXERCICE 4

Quelle requête utiliser pour récupérer le prix du livre le plus élevé de la


table lpecom_livres ?
EXERCICE 5

Quelle requête utiliser pour récupérer les livres de la table lpecom_livres qui ont un


prix compris entre 20 et 22 ?

EXERCICE 6

Quelle requête utiliser pour récupérer tous les livres de la table lpecom_livres à


l'exception de celui portant la valeur pour la colonne isbn_10 : 2092589547 ?

EXERCICE 7

Quelle requête utiliser pour récupérer le prix du livre le moins élevé de la


table lpecom_livres en renommant la colonne dans les résultats par minus ?

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

id_etudiant prenom nom


30 Joseph Biblo

31 Paul Bismuth

32 Jean Michel

33 Ted Bundy
Table : lpecom_etudiants

id_etudiant prenom nom


34 Caroline Martinez

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

Quelle requête utiliser pour afficher tous les enregistrement de la


table lpecom_examens avec en plus, si c'est possible, le prenom et le nom de
l'étudiant ?

EXERCICE 7

Quelle requête utiliser pour afficher les enregistrement de la


table lpecom_examens avec le prenom et le nom de l'étudiant, uniquement quand les
étudiants sont présents dans la table lpecom_etudiants ?

EXERCICE 8

Quelle requête utiliser pour afficher uniquement le nom et le prenom de l'étudiant


avec l'id : 30 avec la moyenne de ses deux examens dans une colonne moyenne ?

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

Quel est le résultat de la requête ci-dessous ?

SQL
SELECT id, prenom, nom
FROM lpecom_realisateurs
WHERE nation = "us"
AND sexe = 1;

EXERCICE 2

Quel est le résultat de la requête ci-dessous ?

SQL
SELECT *
FROM lpecom_realisateurs
WHERE sexe = "0"
ORDER BY nom DESC
LIMIT 1;

EXERCICE 3

Quel est le résultat de la requête ci-dessous ?

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

Quel est le résultat de la requête ci-dessous ?

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

Quel est le résultat de la requête ci-dessous ?

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

Quel est le résultat de la requête ci-dessous ?

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

Quel est le résultat de la requête ci-dessous ?

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

Quel est le résultat de la requête ci-dessous ?

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

Combien de villes possèdent le code postal (zip_code) 77320 ? Renommez la colonne


de résultat n_cities.

EXERCICE 5

Sans jointure, quelle requête utiliser pour calculer le nombre de villes commençant
par "Saint-" en Seine-et-Marne ?

EXERCICE 6

Quelles villes possèdent un code postal (zip_code) compris entre 77210 et 77810 ?

EXERCICE 7

Sans jointure, quelles sont les deux villes de Seine-et-Marne à avoir le code postal
(zip_code) le plus grand ?

EXERCICE 8

Quel est le code postal (zip_code) le plus grand de la table lpecom_cities ?

EXERCICE 9

Avec un seul WHERE et aucun OR, quelle est la requête permettant d'afficher les


départements des régions ayant le code suivant : 75, 27, 53, 84 et 93 ? Le résultat doit
afficher le nom du département ainsi que le nom et le slug de la région associée.

EXERCICE 10
Point important, il sera sans doute nécessaire d'utiliser AS pour obtenir le résultat
souhaité.

Quelle requête utiliser pour obtenir en résultat, les noms de la région, du


département et de chaque ville du département ayant pour code 77 ?

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

Quelle requête utiliser pour afficher le nombre au cumulé de vaccination première


dose toutes régions en 2020 ? Proposez également une solution pour les vaccination
deuxième dose.

EXERCICE 4

Quelle requête SQL utiliser pour afficher le nombre au cumulé de vaccination


première dose pour la région avec le code 93 uniquement pour le mois de mars
2021 ?

EXERCICE 5

Quelle requête utiliser pour afficher le nombre au cumulé de vaccination deuxième


dose pour la région avec le code 11 uniquement pour le mois de mars 2021 ?

EXERCICE 6

Quelle requête SQL utiliser pour afficher le record de vaccination première 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 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

Quelles requêtes permettent de connaitre quelle région possède la plus grande


couverture de vaccination avec une dose et deux doses ? Vous aurez besoin de 4
requêtes pour répondre aux deux questions. Vous aurez besoin du résultat de la
première requête pour la deuxième.

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.

La table lpecom_covid_vaccin_type liste les différents types de vaccins utilisés pour


les injections.

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

Sans jointure, quelle requête utiliser pour afficher le record de vaccination


deuxième dose avec un type de vaccin en une seule journée ? Avec une deuxième
requête qui exploitera deux jointures, afficher toutes les informations possibles pour
cette journée record, sur le type de vaccin et sur le département.
EXERCICE 7

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

Quelle requête permet de savoir quel département a eu le moins de vaccinations


première dose avec le vaccin COMIRNATY Pfizer/BioNTech ? 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 9

Quelle requête permet de connaître la moyenne de vaccinations première dose dans


tous les départements pour le vaccin Moderna ? Renommer la colonne de résultat
avec avg_moderna.

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

Cette nouvelle partie d'exercices concerne les professionnels de santé. Chaque


professionnel santé possède un numéro unique, le code RPPS (Répertoire Partagé
des Professionnels de Santé). Dans la table lpecom_rpps, ce code unique est stocké
dans la colonne id_pp_nat. Nous utiliserons pour cette partie d'exercices 4
tables : lpecom_rpps, lpecom_cities, lpecom_departments et lpecom_regions.

La table lpecom_rpps ne contient que les données pour les professionnels de santé


de Seine-et-Marne (77).

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

Quelle requête SQL utiliser pour compter, sans doublons, le nombre de


professionnels de santé en Seine-et-Marne (77) ?

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.

Vous aimerez peut-être aussi