Exercice SQL corrigé création des requêtes SQL

Soit la base de donnée suivante :

10. Soulignez les clés primaires, rajoutez un # derrière les clés étrangères. (4 pts)11. Donnez la li e des restaurants de plus de 2 étoiles par ordre alphabétique. (2 pts)
SELECT Nomresto 
FROM  RESTO  
WHERE NbEtoile > 2 
ORDER BY Nomresto ;

12. Nom et adresse des restaurants qui ne proposent pas le menu 10. (2 pts)

SELECT Nomresto, Adresse 
FROM  RESTO 
WHERE Idresto NOT IN 
(SELECT Idresto 
FROM  MENURESTO 
WHERE Idmenu=10) ;

13. Donnez la li e des restaurants qui ne vendent pas de boissons alcoolisées. (2 pts)

SELECT Nomresto, Adresse 
FROM  RESTO 
WHERE Idresto NOT IN 
(SELECT Idresto 
FROM  BOISSON B, BOISSONSERVIE BS 
WHERE B.Idboisson=BS.Idboisson 
AND DegreeAlcool > 0) ;

14. Nombre de menus par restaurant par ordre croissant du nombre de menu. (2 pts)

SELECT Nomresto, COUNT(Idmenu) as Nombre 
FROM  RESTO R, MENURESTO M  
WHERE R.Idresto = M .Idresto 
GROUP BY Nomresto 
ORDER BY Nombre ;
15. Nom  du  restaurant,  nom  du  chef,  nombre d’étoiles,  prix  mini,  moyen  et  maxi  d‘un menu dans chaque restaurant. (2 pts)
SELECT Nomresto, Nomchef, NbEtoil  MIN(prix), AVG(PRIX), MAX(PRIX) 
FROM  RESTO R, MENURESTO M  
WHERE R.Idresto=M .Idresto 
GROUP BY Nomresto, Nomchef, NBEtoil

16. Nom du restaurant qui propose le menu le plus cher. (2 pts)

SELECT Nomresto 
FROM  RESTO R, M ENURESTO M  
WHERE R.Idresto = M .Idresto 
AND Prix = 
(SELECT MAX(Prix) FROM  MENURESTO);

17. Liste des boissons en ‘demi-bouteille  proposées par le restaurant 1. (2 pts)

SELECT Nomboisson 
FROM  CONTENANT C, BOISSON B, BOISSONSERVIE BS 
WHERE C.Idcontenant=BS.Idcontenant
AND BS.Idboisson=B.Idboisson 
AND Idresto=1 
AND Nomcontenant="demi-bouteille" ;

18. Nom des restaurants qui proposent ”foie gras poêlé‘ en entrée. (2 pts)

SELECT DISTINCT Nomresto 
FROM  RESTO R, MENURESTO M R, MENU M  
WHERE R.Idresto = M R.Idresto 
AND M R.Idmenu=M .Idmenu 
AND Entree="foie gras poëlé";

19. Donnez la li e des restaurants (nom, adresse, téléphone) qui proposent un plat à base de ”canard‘. (2 pts)

SELECT Nomresto, Adresse, Telephone 
FROM  RESTO R, MENURESTO M R, MENU M  
WHERE R.Idresto = M R.Idresto 
AND M R.Idmenu = M .Idmenu 
AND Plat LIKE "%canard%" ;
20. Donnez la liste des restaurants ayant le même nombre d’étoiles que le restaurant dont le chef s’appelle ‘Dugros'(2 pts)
SELECT RR.Nomresto, RR.Adresse, RR.Telephone 
FROM  RESTO RM , RESTO RR    
WHERE RM .IDresto = RR.Idresto 
AND RM .NbEtoile = RR.NbEtoile 
AND RM .Nomchef = "Dugros" 
AND RR.Nomchef <> "Dugros";

Autre solution :

SELECT Nomresto, Adresse, Telephone 
FROM  RESTO  
WHERE NbEtoile =  
(SELECT NbEtoile FROM  RESTO WHERE Nomchef = "Dugros") 
AND Nomchef <> "Dugros";

Télécharger aussi :

Laisser un commentaire

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