Exercice SQL corrigé base de données café

1- Les Cafés qui servent une Boisson Apprécier par ‘Ahmed’.

SELECT Café 
FROM Apprécier A, Servir S 
WHERE S.Boisson = A.Boisson AND Client ='Ahmed';

2- Les Clients qui vont dans les mêmes Cafés que Ahmed.

SELECT Fréquenter.Client 
FROM Fréquenter F1, Fréquenter F2 
WHERE F1.Café = F2.Café AND F2.Client = 'Ahmed';

3- Les Clients qui fréquentent au moins un Café où l’on sert une Boisson qu’ils aiment.

SELECT Fréquenter.Client 
FROM Fréquenter F, Apprécier A, Servir S 
WHERE A.Boisson = S.Boisson AND S.Café = F.Café AND A.Client = F.Client ;

4- Les Clients qui ne fréquentent aucun Café où l’ont sert une Boisson qu’ils aiment.

SELECT Client 
FROM Fréquenter F 
WHERE Client NOT IN 
(SELECT Client 
FROM Apprécier A, Servir S 
WHERE S.Café = F.Café 
AND S.Boisson = A.Boisson );

5- Les Clients qui fréquentent tous les Cafés.

SELECT Client 
FROM Fréquenter 
WHERE Client NOT IN 
(SELECT F1.Client FROM Fréquenter F1, Fréquenter F2 
WHERE F1.Client NOT IN 
(SELECT Client 
FROM Fréquenter 
WHERE Café=F2.Café)
);

6- Les Clients qui fréquentent tous les Cafés qui servent au moins une Boisson qu’ils aiment.

SELECT Client 
FROM Fréquenter F 
WHERE Client NOT IN 
(SELECT Apprécier.Client 
FROM Servir S, Apprécier A 
WHERE S.Boisson=A.Boisson 
AND A.Client NOT IN 
(SELECT Client 
FROM Fréquenter 
WHERE Café=S.Café)

);

7- Les Clients qui ne fréquentent que les Cafés qui servent une Boisson qu’ils aiment.

SELECT Client 
FROM Fréquenter 
WHERE Client NOT IN 
(SELECT Client 
FROM Fréquenter F 
WHERE Client NOT IN 
(SELECT Client 
FROM Servir S, Apprécier A 
WHERE S.Café = F.Café 
And S.Boisson = A.Boisson)
);

8- Donner pour chaque Client, le nombre de Cafés servant une Boisson qu’ils aiment.

SELECT Client, COUNT(DISTINCT Café) 
FROM Servir S, Apprécier A 
WHERE S.Boisson = A.Boisson 
GROUP BY Client

9- Les Clients qui fréquentent au moins 2 Cafés où l’on sert une Boisson qu’ils aiment.

SELECT Client 
FROM Servir S, Apprécier A, Fréquenter F 
WHERE S.Boisson = A.Boisson AND A.Client = F.Client AND F.Café = S.Café 
GROUP BY Client 
HAVING COUNT(Café)>2;

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *