Bases de données et SQL
D'après BAC 2023¶
L’énoncé de cet exercice utilise les mots clefs du langage SQL suivants : SELECT, FROM, WHERE, JOIN...ON, UPDATE...SET, DELETE, INSERT INTO...VALUES, ORDER BY.
On rappelle que la clause ORDER BY
suivie d'un attribut permet de trier les résultats par ordre
croissant des valeurs de l'attribut.
Radio France souhaite créer une base de données relationnelle contenant les podcasts des émissions de radio. Pour cela elle utilise le langage SQL. Elle crée :
- une relation (ou table)
podcast
qui contient le thème et l’année de diffusion. - une relation
emission
qui contient les émissions (id_emission
,nom
), la radio de diffusion et l’animateur. - une relation
description
qui contient un résumé et la durée du podcast en minutes.
On donne ci-dessous quelques enregistrements présents dans les tables podcast
, emission
et description
.
-
Relation podcast
idpodcast theme annee idemission 1 Le système d’enseignement supérieur 2022 10081 français est-il juste et efficace ? 2 Trois innovations pour la croissance future 2021 10081 (1/3) : La révolution blockchain. 3 Travailleurs de plateformes : vers un 2021 10175 nouveau prolétariat ? 4 Le poids de la souveraineté numérique 2019 10183 française 40 Le poids de la souveraineté numérique 2019 10183 française 5 Dans le cloud en Islande, terre des data 2019 10212 -
Relation emission
id_emission nom radio animateur 10081 Entendez-vous l’éco ? France culture Tiphaine De R. 10175 Le Temps du débat France culture Léa S. 10183 Soft power France culture Frédéric M. 10212 La tête au carré France inter Mathieu V. -
Relation description
iddescription resume duree idemission 101 Autrefois réservé à une élite, 4 10081 l’enseignement supérieur français s’est profondément démocratisé : donne-t-il pour autant les mêmes chances à chacun ? 102 Quelles sont leurs conditions de travail et 58 10175 quels sont leurs moyens de contestation ? 103 La promesse de la blockchain, c’est la 4 10081 suppression des intermédiaires et la confiance à grande échelle.
id_podcast
de la relation podcast
et id_emission
de la relation emission
sont
des clés primaires. L’attribut id_emission
de la relation podcast fait directement référence à la clé
primaire de la relation emission
.
-
Écrire le schéma relationnel de la relation
description
, en précisant les attributs et leurs types probables, la clé primaire et la ou les clé(s) étrangère(s) éventuelle(s).description(id_description
Int
, resumeString
, dureeint
, #id_emissionint
) -
-
Écrire ce qu’affiche la requête suivante appliquée aux extraits précédents :
1
SELECT theme, annee FROM podcast WHERE id_emission = 10081 ;
Cela affiche le thème et l'année des podcasts dont l'attribut
id_emission
est 10081.theme annee Le système d’enseignement supérieur 2022 français est-il juste et efficace ? Trois innovations pour la croissance future 2021 (1/3) : La révolution blockchain. -
Écrire une requête SQL permettant d'afficher les thèmes des podcasts de l'année 2019.
1
SELECT theme FROM podcat WHERE annee = 2019 ;
-
-
Écrire une requête SQL affichant la liste des thèmes et des années de diffusion des podcasts dans l'ordre chronologique des années.
1
SELECT theme, annee FROM podcast ORDER BY annee ;
-
-
Décrire simplement le résultat obtenu avec cette requête SQL.
1
SELECT DISTINCT theme FROM podcast
Cela affiche tous les thèmes de la relation podcast, les thèmes en doublon n'étant affichés qu'une seule fois.
-
Écrire une requête SQL supprimant la ligne contenant l'
id_podcast = 40
de la relation podcast.1
DELETE FROM podcast WHERE id_podcast = 40 ;
-
-
-
Une erreur de saisie a été faite dans la relation emission. Écrire une requête SQL permettant de changer le nom de l’animateur de l'émission "Le Temps du débat" en "Emmanuel L.".
1 2 3
UDPATE emission SET animateur = 'Emmanuel L.' WHERE nom = 'Le Temps du débat'
-
Écrire une requête SQL permettant d'ajouter l'émission "Hashtag" sur la radio "France inter" avec "Mathieu V.". On lui donnera un
id_emission
égal à 12850.1 2
INSERT INTO emission VALUES (12850, 'Hashtag', 'France Inter', 'Mathieu V.')
-
-
Écrire une requête permettant de lister les thèmes, le nom des émissions et le résumé des podcasts pour lesquels la durée est strictement inférieure à 5 minutes.
1 2 3 4
SELECT theme, nom, resume FROM podcast JOIN description ON description.id_emission = podcast.id_emission JOIN emission on emission.id_emission = podcast.id_emission WHERE duree < 5