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
Solution
🗂️ 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
Solution
🗂️ 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
Solution
🗂️ Requête SQLSELECT id FROM directors WHERE director = 'Michael Bay'; -
La série
The Witchercomporte désormais 2 saisons alors que la base n'en indique qu'une seule. Corriger cette erreur.Votre réponse
Solution
🗂️ 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
Solution
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
Solution
🗂️ 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 (
Indiadans la base) ?Votre réponse
Solution
🗂️ 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
Uruguaydans l'ordre décroissant de leur date de réalisation.Votre réponse
Solution
🗂️ 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
Solution
🗂️ 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
notationsdont les attributs sont :id: un entier, clé primaireshow_id: identifiant d'un programme, au format textenotation: la note du programme, au format entier
show_idest une clé étrangère pointant vers la tableprograms.Votre réponse
Solution
🗂️ Requête SQLCREATE TABLE "notations" ( "id" INTEGER, "show_id" TEXT, "notation" INTEGER, PRIMARY KEY("id"), FOREIGN KEY("show_id") REFERENCES "programs"("show_id") );