--- title: BDR - grTP4 - Grp_8 tags: grTP4 --- [//]: <> (Ne pas modifier ce qui est au dessus SVP.) # TP3 ### Exercice 1 Requête 1 1) ```SQL SELECT nom_recette from recette WHERE calories_recettes >= 90 ``` 2) ```SQL SELECT descriptif_produit FROM produit JOIN rangement USING (num_rangement) WHERE nom_rangement = 'réfrigérateur' ``` 3) ```SQL SELECT nom_recette from recette JOIN composition USING (num_recette) JOIN ingredient USING (num_ingredient) JOIN type_ingredient USING (num_type_ingredient) WHERE nom_type_ingredient = 'fruit de mer' ``` 4) ```SQL SELECT nom_recette FROM recette EXCEPT ( SELECT nom_recette FROM recette JOIN composition USING (num_recette) JOIN ingredient USING (num_ingredient) JOIN type_ingredient USING (num_type_ingredient) WHERE type_ingredient = 'fruit de mer' ) ``` https://fr.wikipedia.org/wiki/Vue_(base_de_donn%C3%A9es) 5) i) ```SQL SELECT nom_ingredient FROM ingredient JOIN type_ingredient USING (num_type_ingredient) WHERE nom_type_ingredient = 'matière grasse' ``` ii) ``` CREATE VIEW ingredient_gras AS SELECT nom_ingredient FROM ingredient JOIN type_ingredient USING (num_type_ingredient) WHERE nom_type_ingredient = 'matière grasse' ``` iv) ```SQL SELECT nom_recette FROM recette JOIN composition USING(num_recette) JOIN ingredient USING (num_ingredient) JOIN ingredient_gras USING(num_ingredient) GROUP BY nom_recette HAVING COUNT(num_ingredient)>=2 ``` v) ```SQL SELECT DISTINCT nom_rangement FROM rangement JOIN produit USING(num_rangement) JOIN ingredient_gras USING(num_ingredient); ``` vi) ```SQL SELECT DISTINCT nom_ingredient, COALESCE(SUM(quantite_produit), 0, SUM(quantite_produit)) --coalesce permet ici de remplacer les 'NULL' par 0 comme affiché dans la correction-- FROM ingredient_gras LEFT JOIN produit USING(num_ingredient) GROUP BY nom_ingredient; ``` CREATE VIEW quantite_gras AS SELECT nom_recette from recette, SUM(quantite_produit) Join composition USIG (num_recette) Join ingredient USING (num_ingredient) GROUP BY nom_recette HAVING nom_type_ingredient = 'matière grasse'