Les programmes de netflix
⚓︎
On considère dans ce sujet la base de données netflix
contenant des informations sur les programmes de la plateforme. Cette base contient plusieurs relations/tables :
-
countries
: contient des informations décrivant des pays :-
id
: l'identifiant du pays (entier, clé primaire) -
country
: le nom du pays (texte)
-
-
directors
: contient des informations décrivant les réalisateurs des programmes :-
id
: l'identifiant du réalisateur (entier, clé primaire) -
director
: le nom du ou des réalisateurs (texte)
-
-
genres
: décrit les genres des programmes :-
id
: l'identifiant du genre (entier, clé primaire) -
genre
: le nom du genre (texte)
-
-
programs
: décrit les programmes :-
show_id
: l'identifiant du programme (texte, clé primaire) -
type
: l'identifiant du type de programme (entier, clé étrangère pointant verstypes.id
) -
title
: le nom du programme (texte) -
director
: l'identifiant du ou des réalisateurs (entier, clé étrangère pointant versdirectors.id
) -
country
: l'identifiant du pays du programme (entier, clé étrangère pointant verscountries.id
) -
date_added
: la date d'ajout sur la plateforme (texte) -
release_year
: la date de réalisation du programme (entier) -
rating
: l'identifiant de la classification du programme (entier, clé étrangère pointant versratings.id
) -
duration
: la durée du programme en saison ou minutes (texte)
-
-
ratings
: décrit les classifications des programmes :-
id
: l'identifiant de la classification (entier, clé primaire) -
rating
: le nom de la classification (texte)
-
-
show_genres
: décrit les genres associés à chaque programme :-
show_id
: l'identifiant du programme (texte, clé étrangère pointant versprograms.show_id
) -
genre
: l'identifiant du genre (entier, clé étrangère pointant versgenres.id
) -
La clé primaire de cette table est le couple
(show_id, genre)
.
-
-
types
: décrit les types de programmes :-
id
: l'identifiant du type (entier, clé primaire) -
type
: le nom du type (texte)
-
Cette base est téléchargeable au format sqlite ici. La source est sur kaggle.
-
Afficher le nom des programmes ainsi que leur date d'ajout sur la plateforme.
Votre réponse
Réponse
🗂️ Requête SQLSELECT title, date_added FROM programs;
-
Afficher le nom et la date de réalisation des programmes réalisés après 2020 (inclus):
Votre réponse
Réponse
🗂️ Requête SQLSELECT title, release_year FROM programs WHERE release_year >= 2020;
-
Quel est l'identifiant du réalisateur nommé
Michael Bay
?Votre réponse
Réponse
🗂️ Requête SQLSELECT id FROM directors WHERE director = 'Michael Bay';
-
La série
The Witcher
comporte désormais 2 saisons alors que la base n'en indique qu'une seule. Corriger cette erreur.Votre réponse
Réponse
🗂️ Requête SQLUPDATE programs SET duration = '2 seasons' WHERE title = 'The Witcher';
-
Insérer la série télévisée
The Sandman
, ajoutée en 2022, de réalisateurs multiples (utiliser l'identifiant correspondant àNot Given
), et de classificationTV-MA
. Les autres champs seront laissés vierges.Votre réponse
Réponse
On récupère tout d'abord l'identifiant du réalisateur
Not Given
:🗂️ Requête SQLSELECT id FROM directors WHERE director = 'Not Given';
On obtient le
1238
.On fait de même avec l'identifiant de la classification
TV-MA
:🗂️ Requête SQLSELECT id FROM ratings WHERE rating = 'TV-MA';
On obtient le
9
.On peut alors effectuer l'insertion :
🗂️ Requête SQLINSERT INTO programs (title, release_year, director, rating) VALUES ('The Sandman', 2022, 1238, 9);
Il était aussi possible de faire :
🗂️ Requête SQLINSERT INTO programs (title, release_year, director, rating) VALUES ('The Sandman', 2022, (SELECT id FROM directors WHERE director = 'Not Given'), (SELECT id FROM ratings WHERE rating = 'TV-MA'));
-
Quels sont les noms des programmes réalisés en
France
?Votre réponse
Réponse
🗂️ Requête SQLSELECT title FROM programs JOIN countries ON countries.id = programs.country WHERE countries.country = 'France';
-
Combien de programmes ont été réalisés en 2020 en Inde (
India
dans la base) ?Votre réponse
Réponse
🗂️ Requête SQLSELECT COUNT(*) FROM programs JOIN countries ON countries.id = programs.country WHERE countries.country = 'India' AND release_year = 2020;
-
Afficher les noms et la date de réalisation des séries télévisées réalisées en
Uruguay
dans l'ordre décroissant de leur date de réalisation.Votre réponse
Réponse
🗂️ Requête SQLSELECT title, release_year FROM programs JOIN countries ON countries.id = programs.country WHERE countries.country = 'Uruguay' ORDER BY release_year DESC;
-
À quel genre (au format texte) est associée la série
Downton Abbey
?Votre réponse
Réponse
🗂️ Requête SQLSELECT genres.genre FROM show_genres JOIN programs ON programs.show_id = show_genres.show_id JOIN genres ON genres.id = show_genres.genre WHERE programs.title = 'Downton Abbey';
-
Quel code permettrait de créer la table
notations
dont les attributs sont :id
: un entier, clé primaireshow_id
: identifiant d'un programme, au format textenotation
: la note du programme, au format entier
show_id
est une clé étrangère pointant vers la tableprograms
.Votre réponse
Réponse
🗂️ Requête SQLCREATE TABLE "notations" ( "id" INTEGER, "show_id" TEXT, "notation" INTEGER, PRIMARY KEY("id"), FOREIGN KEY("show_id") REFERENCES "programs"("show_id") );