Académique Documents
Professionnel Documents
Culture Documents
Réponse:
ALTER TABLE Client
ADD Adresse CHAR(30),
CHANGE NomCl NomClient Char(30),
MODIFY PrénomCientl CHAR(30),
DROP COLUMN TéléphoneCL;
-1- -2-
Institut Supérieur de Documentation Cours BD (1ère année SI+GEID+LDBA) Institut Supérieur de Documentation Cours BD (1ère année SI+GEID+LDBA)
Exercice n°2: 3) Insérer l’enregistrement ('S22', 'F12', '2015-10-23',1,NULL) dans la table "Projeter" :
Soit le schéma relationnel suivant:
Salle (CodeS, NomS, Adresse, Capacité) Remarque:
Film (CodeF, Titre, DateF, Type, Réalisateur) MySQL5.5 stocke une date au format AAAA-MM-JJ (Année-Mois-Jour) et met une date entre
Projeter (#CodeS, #CodeF, DateProjection, NuméroProjection, NombreSpectateurs) deux apostrophes (comme une chaîne de caractères). Exemple: '2014-12-21'
2) Création de la table "Projeter": 5) Effacer la capacité de la salle de code 'S23' (mettre à jour à NULL):
#CodeS est un texte de taille maximale 3 caractères
#CodeF est un texte de taille maximale 3 caractères Réponse:
DateProjection est de type date UPDATE Salle
NuméroProjection est un entier codé sur 1 octet SET Capacité=NULL
NombreSpectateurs est un entier codé sur 2 octets, s’affichant sur 3 caractères WHERE CodeS='S23';
Réponse:
6) Augmenter de 100 les capacités des salles dont le code varie entre 'S21' et 'S23':
CREATE TABLE Projeter (
#CodeS Char (3),
Réponse:
#CodeF Char (3),
DateProjection Date, UPDATE Salle
NuméroProjection Tinyint, SET Capacité=Capacité+100
NombreSpectateurs SmallInt(3), WHERE CodeS BETWEEN 'S21' AND 'S23';
PRIMARY KEY (#CodeS, #CodeF, DateProjection, NuméroProjection),
FOREIGN KEY (#CodeS) REFERENCES Salle (CodeS),
FOREIGN KEY (#CodeF) REFERENCES Film(CodeF));
-3- -4-
Institut Supérieur de Documentation Cours BD (1ère année SI+GEID+LDBA) Institut Supérieur de Documentation Cours BD (1ère année SI+GEID+LDBA)
7) Supprimer toutes les projections du film 'F99' effectuées durant le mois de janvier 2015 dans 11)Donner le nombre de films projetés par salle :
la salle 'S13':
Réponse:
Réponse: SELECT #CodeS, Count (#CodeF) As NombreDeFilms
DELETE FROM Projeter
FROM Projeter GROUP BY #CodeS;
WHERE #CodeF='F99'
12) Donner le nombre total de spectateurs par salle et par film:
AND # CodeS='S13'
AND DateProjection BETWEEN '2015-01-01' AND '2015-01-31';
Réponse:
SELECT #CodeS, #CodeF, SUM (NombreSpectateurs) As NombreDeSpectateurs
8) Donner les noms des salles ayant accueilli moins de 50 spectateurs dans une projection:
FROM Projeter
GROUP BY #CodeS, #CodeF;
Réponse:
SELECT NomS
FROM Salle, Projeter
WHERE CodeS = #CodeS
AND NombreSpectateurs < 50;
Réponse:
SELECT CodeF
FROM Film
WHERE DateF Between '2006-01-01' AND '2006-12-31';
10) Donner toutes les informations sur les salles dont la capacité est vide est dont l'adresse est
soit 'Tunis', soit 'Bizerte', soit 'Sousse':
Réponse:
SELECT *
FROM SALLE
WHERE Capacité IS NULL
AND Adresse IN ('Tunis', 'Bizerte', 'Sousse');
-5- -6-
Institut Supérieur de Documentation Cours BD (1ère année SI+GEID+LDBA) Institut Supérieur de Documentation Cours BD (1ère année SI+GEID+LDBA)
Exercice n°3 : 5) Donner la meilleure remise par ouvrage :
Soit le schéma relationnel suivant:
Ouvrage (NO, Titre, AnneeEdition, Prix) Réponse:
Distributeur (ND, Nom, Ville) SELECT #NO, MAX (Remise) As MeilleureRemise
Offrir (#NO, #ND, Remise) FROM Offrir
GROUP BY #NO;
1) Donner les noms des distributeurs de 'Tunis' :
6) Donner les moyennes des remises par titre d'ouvrage dans le cas où cette moyenne est
supérieure ou égale à 20% (0,2):
Réponse:
SELECT Nom
Réponse:
FROM Distributeur
SELECT Titre, AVG (Remise) As RemiseMoyenne
WHERE Ville = 'Tunis';
FROM Ouvrage, Offrir
WHERE NO =#NO
2) Donner les titres des ouvrages offerts par des distributeurs de 'Tunis':
GROUP BY Titre
HAVING AVG (Remise)>=0.2; (ou bien HAVING RemiseMoyenne >=0.2)
Réponse:
SELECT Titre
FROM Distributeur, Ouvrage, Offrir
WHERE ND =#ND
AND NO =#NO
AND Ville = 'Tunis';
Réponse:
SELECT NO
FROM Ouvrage
WHERE AnnéeEdition = 2007;
Réponse:
SELECT Count(*) As NBROuvrages
FROM Ouvrage;
-7- -8-