STI
Systèmes & Technologies de l'Informatique
Classe : 4e Sciences de l'Informatique
S
Série : Gestion des données
Nom du prof : M Ladhari Tijani
STI
Anglais
Objectifs
❖ Les commandes SQL (LDD)
❖ Les commandes SQL (LMD)
❖ Group by , Having
❖ Les requêtes imbriquées
Exercice 90 min
Soit la représentation textuelle d’une base de données représentant la gestion des commandes dans
une pizzeria :
Pizza (IdPizza, Nom, Prix)
Client (TelC, NomPreC, Adresse)
Commande (IdPizza#, TelC#, QteCmd)
Livreur (Matricule, NomPreL, TelL )
Description des colonnes
colonne Description Type Taille Obliga- Contrainte
toire
IdPizza Identifiant d’une Pizza Texte 3
Nom Nom d’une Pizza Texte 30 oui
Prix Prix d’une Pizza Décimale 6,3 oui >0
TelC Numéro de téléphone d’un Texte 8
client
NomPreC Nom et prénom d’un client Texte 50 oui
Adresse Adresse d’un client Texte 100 oui
QteCmd Quantité commandée d’une Entier 1 non
Pizza
Matricule Matricule d’un livreur Texte 10
NomPreL Nom et prénom d’un livreur Texte 50 oui
TelL Numéro de téléphone d’un li- Texte 8 oui
vreur
1. Le concepteur de la base de données propose les deux règles de gestion suivantes :
R1 : Une commande est livrée par un livreur
R2 : Un livreur peut livrer plusieurs commandes
Donner la nouvelle représentation textuelle des trois tables "Livreur" et "Commande".
1
STI
Anglais
2. Sachant qu’un client peut commander le même pizza plusieurs fois à des dates différents . Co-
cher la nouvelle représentation graphique
Représentation graphique Réponse
3. Le concepteur veut ajouter dans cette base une nouvelle table nommée "ingrédient" contenant
les champs suivants :
Champs Description
Code Code de l’ingrédient , Auto-incrémenté
Libelle Libellé de l’ingrédient de type chaine (100)
Prix Prix de l’ingrédient , decimal(6,3) , Strictement positif
Sachant que les règles de gestion ci-dessous doivent être respectées :
R3 : Une pizza peut contenir plusieurs ingrédients
R4: Un ingrédient peut être utiliser dans plusieurs pizzas
a) Donner la nouvelle représentation textuelle des tables concernées par ces règles de gestion
b) Ecrire la commande SQL pour créer cette table
2
STI
Anglais
4. Soient le requêtes SQL présentée ci-dessous permettant de créer la table Pizza
CREATE TABLE Pizza (
IdPizza Varchar(3) PRIMARY KEY,
NomPizza Varchar(30),
Prix Decimal(6,3) ) ;
Ecrire les requêtes SQL nécessaires permettant d’ajouter les contraintes manquantes en s’appuyant
sur la représentation textuelle de la base données et à la description des colonnes indiquée ci-dessus :
5. Pour chacune des situations suivantes, mettre une croix devant la réponse correcte :
a) Soit la requête SQL suivante :
DELETE FROM commande WHERE DATEDIFF(NOW(), DateCmd ) <7;
En exécutant la requête, Le système :
Supprime toutes les commandes dont la date (DateCmd) est inférieure à 7 jours par rapport
à la date actuelle.
Supprimer toutes les commandes de la table commande dont la date (DateCmd) est inférieure
à 7 mois par rapport à la date actuelle.
Supprimer toutes les commandes de la table commande dont la date (DateCmd) est inférieure
à 7 ans par rapport à la date actuelle.
b) La requête qui permet d’insérer un nouvel ingrédient est :
Insert into ingredient (Libelle, Prix) values ("champignon",13.500) ;
Insert into ingredient values ("champignon",13.500) ;
Insert into ingredient values (Null,"champignon",13.500) ;
c) La requête qui permet de renommer le champ Nom dans la table Pizza par NomPizza
est :
RENAME TABLE Nom TO NomPizza ;
ALTER TABLE Pizza RENAME Nom TO NomPizza;
ALTER TABLE Pizza CHANGE Nom NomPizza VARCHAR(30) Not Null;
3
STI
Anglais
6. Ecrire les requêtes SQL permettant de répondre aux questions suivantes :
a- Afficher les pizzas qui ont un prix entre 10 et 20 dinars. On affichera les champs
nomPizza et le prix .
b- Afficher les livreurs qui ont livré une commande à un client habitant la ville de Mahdia.
On affiche les champs NomPreL et TelL
c- Afficher la quantité commander pour chaque pizza aujourd’hui . On affiche le nom de la
pizza et la quantité
d- Afficher les clients qui ont commandé plus de 10 pizzas cette semaine. on affiche les
champs NomPreC et TelC
e- Lister les livreurs qui ont livré plus de 3 commandes, triés par nombre de livraisons
croissant. On affiche le nom de livreur et le nombre de commande
f- Afficher les clients habitant la ville Bizerte et qui ont dépensé plus de 200 dinars le mois
en cours . On affiche le nom de client , le numéro de téléphone et le montant dépensé
NB : montant dépensé par un client = somme (Prix de la pizza × Quantité commandée).
g- Afficher les noms des pizzas qui n’ont pas été commander aujourd’hui
h- Afficher les noms et prénoms des clients qui ont commandé la même pizza que le client
ayant le numéro 98770555.