Exercice 3 - Bases de données · Bac Numérique et Sciences Informatiques Métropole 2 remplacement 2025
Thème : Bases de données relationnelles, SGBD et langage SQL · Tiré du sujet Métropole France 2 remplacement (2025)
Énoncé
Cet exercice porte principalement sur les bases de données, les graphes et la programmation de base en Python.
Un supermarché utilise une base de données qui contient des informations sur les produits, les fournisseurs, les commandes passées et leurs détails. Le modèle relationnel de cette base est donné par le schéma ci-dessous:
Dans ce schéma, les clés primaires sont soulignées et les clés étrangères sont précédées du symbole #. Le type de chaque attribut est indiqué entre parenthèses.
On considère l'extrait de la base de données ci-dessous:
Table Commandes
id_commande · date_commande · total_commande
1 · 03/06/2025 · 176.00
2 · 08/12/2024 · 1150.00
3 · 21/04/2025 · 155.00
L'énoncé de cet exercice utilise tout ou une partie des mots clefs du langage SQL suivants: SELECT, DISTINCT, FROM, WHERE, JOIN... ON, UPDATE... SET, DELETE, INSERT INTO... VALUES.
Avant de mettre en vente un nouveau produit, il faut le créer dans la base.
1.
Écrire une requête SQL permettant d'ajouter le produit croissant référencé dans la base sous le numéro 10. Il est vendu au prix unitaire de 0,90 €. Le magasin se fournit, pour ce produit, auprès de Boulangerie du Coin.
Le fournisseur Livres en Folie a changé d'entrepôt. Il se trouve maintenant au 78 Rue des Jeux à Elbeuf (France).
2.
Écrire la requête SQL permettant de mettre à jour la base de données.
3.
Décrire le résultat obtenu avec la requête SQL ci-dessous:
SELECT nom
FROM Produits
WHERE categorie = 'Alimentaire';
4.
Écrire une requête SQL permettant d'afficher les détails des commandes passées ayant un total de commande supérieur ou égal à 1000 €.
5.
Écrire une requête SQL permettant d'afficher le nom des fournisseurs basés en Espagne ou en Italie.
6.
Écrire une requête SQL qui permet d'afficher le nom de tous les fournisseurs qui ont vendu des produits alimentaires.
7.
Écrire une requête SQL permettant d'afficher le numéro et la date des commandes ainsi que le nom des fournisseurs où des produits de catégories Vêtement ont été commandés.

Corrigé
Corrigé établi d’après les éléments de correction officiels
1. Écrire une requête SQL permettant d'ajouter le produit croissant référencé dans la base sous le numéro 10. Il est vendu au prix unitaire de 0,90 €. Le magasin se fournit, pour ce produit, auprès de Boulangerie du Coin.
Réponse : ```sql INSERT INTO Produits VALUES (10, 'Croissant', 'Alimentaire', 0.90, 4); ``` ```sql INSERT INTO Produits (id_produit, nom, categorie, prix, id_fournisseur) VALUES (10, 'Croissant', 'Alimentaire', 0.90, 4); ```
2. Écrire la requête SQL permettant de mettre à jour la base de données.
Réponse : ```sql UPDATE Fournisseurs SET adresse = '78 Rue des Jeux', ville = 'Elbeuf' WHERE nom = 'Livres en Folie'; ``` ```sql UPDATE Fournisseurs SET adresse = '78 Rue des Jeux', ville = 'Elbeuf' WHERE nom_fournisseur = 'Livres en Folie'; ```
3. Décrire le résultat obtenu avec la requête SQL ci-dessous :
Réponse : Cette requête SQL sélectionne et affiche les noms de tous les produits de la catégorie Alimentaire : | nom | | :--- | | Yaourts blanc x 4 | | Lait | | Pain |
4. Écrire une requête SQL permettant d'afficher les détails des commandes passées ayant un total de commande supérieur ou égal à 1000 €.
Réponse : ```sql SELECT * FROM Commandes WHERE total >= 1000; ``` ```sql SELECT * FROM Commandes WHERE total_commande >= 1000; ```
5. Écrire une requête SQL permettant d'afficher le nom des fournisseurs basés en Espagne ou en Italie.
Réponse : ```sql SELECT nom FROM Fournisseurs WHERE pays = 'Espagne' OR pays = 'Italie' ; ``` ```sql SELECT nom FROM Fournisseurs WHERE pays IN ('Espagne', 'Italie') ; ```
6. Écrire une requête SQL qui permet d'afficher le nom de tous les fournisseurs qui ont vendu des produits alimentaires.
Réponse : ```sql SELECT Fournisseurs.nom FROM Fournisseurs JOIN Produits ON Fournisseurs.id_fournisseur = Produits.id_fournisseur WHERE categorie = 'Alimentaire'; ``` ```sql SELECT DISTINCT Fournisseurs.nom FROM Fournisseurs JOIN Produits ON Fournisseurs.id_fournisseur = Produits.id_fournisseur WHERE categorie = 'Alimentaire'; ```
7. Écrire une requête SQL permettant d'afficher le numéro et la date des commandes ainsi que le nom des fournisseurs où des produits de catégories Vêtement ont été commandés.
Réponse : ```sql SELECT id_commande, date, Fournisseurs.nom FROM Fournisseurs JOIN Commandes ON Fournisseurs.id_fournisseur = Commandes.id_fournisseur JOIN Details ON Commandes.id_commande = Details.id_commande JOIN Produits ON Details.id_produit = Produits.id_produit WHERE categorie = 'Vêtement'; ``` ```sql SELECT Commandes.id_commande, date_commande, Fournisseurs.nom FROM Fournisseurs JOIN Produits ON Fournisseurs.id_fournisseur = Produits.id_fournisseur JOIN Details ON Details.id_produit = Produits.id_produit JOIN Commandes ON Commandes.id_commande = Details.id_commande WHERE categorie = 'Vêtement'; ```
L’explication pas à pas, faite avec l’IA, est réservée aux membres Premium. Premium
Résous-le ici : correction automatique, indices et corrigé détaillé.
‹ Exercice 2 - Bases de données relationnelles et S… · Métropole 2025 (sujet 2) · Exercice 2 - Bases de données relationnelles et S… · Métropole 2024 (sujet 1) ›
Plus d’exercices de Bases de données relationnelles, SGBD et langage SQL
- Exercice 3 - Partie B · Métropole 2026 (sujet 1)
- Exercice 3 - Bases de données relationnelles et S… · Métropole 2026 (sujet 2)
- Exercice 1 · Métropole 2025 (sujet 1)
- Exercice 3 - Bases de données relationnelles et S… · Métropole 1 remplacement 2025
- Exercice 2 - Bases de données relationnelles et S… · Métropole 2025 (sujet 2)
- Exercice 2 - Bases de données relationnelles et S… · Métropole 2024 (sujet 1)
- Exercice 1 · Métropole 1 remplacement 2024
- Exercice 1 - Partie A · Métropole 2024 (sujet 2)
- Exercice 3 - Partie C : Exploitation de la base d… · Métropole 2 remplacement 2024
- Exercice 1 · Métropole 2023 (sujet 1)