---
# System prepended metadata

title: BDR - grTP1 - Grp_3
tags: [grTP1]

---

---
title: BDR - grTP1 - Grp_3
tags: grTP1
---
[//]: <> (Ne pas modifier ce qui est au dessus SVP.)

# TP3
### Question 1
Requête 1
SELECT nom_recette FROM recette WHERE (calories_recette > 90) ;


### Question 2
SELECT descriptif_produit from produit JOIN rangement USING(num_rangement) ;

### Question 3

SELECT DISTINCT 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') ;
 


### Question 4
```SQL
SELECT DISTINCT nom_recette 
FROM recette 
JOIN composition
USING(num_recette) 
JOIN ingredient 
USING(num_ingredient)
JOIN type_ingredient
USING(num_type_ingredient)
WHERE LOWER(nom_type_ingredient) !=  'fruit de mer' ;

SELECT nom_recette
FROM recette
WHERE num_recette NOT IN (
```

### i) Question 5
```
SELECT DISTINCT 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') );
```

### i) Question 5
SELECT num_type_ingredient, num_ingredient, nom_ingredient, nom_type_ingredient FROM ingredient JOIN type_ingredient USING(num_type_ingredient) WHERE (nom_type_ingredient = 'matière grasse') ;

### ii)
CREATE VIEW ingredient_gras AS (SELECT num_type_ingredient, num_ingredient, nom_ingredient, nom_type_ingredient FROM ingredient JOIN type_ingredient USING(num_type_ingredient) WHERE (nom_type_ingredient = 'matière grasse'));

### iii)
SELECT * FROM ingredient_gras ;


### iv)
SELECT nom_recette
FROM recette
JOIN composition
USING (num_recette)
JOIN ingredient_gras
USING(num_ingredient)
WHERE (nom_type_ingredient = 'matière grasse')
GROUP BY nom_recette
HAVING
COUNT (nom_type_ingredient) >2 ;


### (v)
SELECT DISTINCT nom_rangement 
FROM rangement 
JOIN produit
USING (num_rangement)
JOIN ingredient
USING (num_ingredient)
JOIN type_ingredient
USING (num_type_ingredient)
WHERE (nom_type_ingredient = 'matière grasse');

### vi)
SELECT num_ingredient, nom_ingredient, SUM(quantite_produit) AS somme_quantite_produit
FROM produit
RIGHT JOIN ingredient_gras
USING (num_ingredient)
WHERE (nom_type_ingredient = 'matière grasse')
GROUP BY num_ingredient, nom_ingredient ;

### vii)
CREATE VIEW quantite_produit_gras2 AS (
SELECT num_ingredient, nom_ingredient, SUM(quantite_produit) AS somme_quantite_produit
FROM produit
RIGHT JOIN ingredient_gras
USING (num_ingredient)
WHERE (nom_type_ingredient = 'matière grasse')
GROUP BY num_ingredient, nom_ingredient 
)
;

UPDATE quantite_produit_gras2 SET
somme_quantite_produit = 0
WHERE (somme_quantite_produit IS NULL) ;



### Question 6

Déjà fait  dans question précédente

### Question 7(Question sur invisibiliser la colonne somme_quantite_produit)
SELECT num_recette, nom_recette, EXCEPT(somme_quantite_produit),
CASE WHEN somme_quantite_produit>120 
THEN 'recette trop grasse'
WHEN somme_quantite_produit <50 AND somme_quantite_produit >0
THEN 'recette légère'
WHEN somme_quantite_produit = 0
THEN  'recette non grasse'
ELSE 'recette moyennement grasse'
END
FROM quantite_produit_gras2 
JOIN composition
USING(num_ingredient)
JOIN recette
USING(num_recette);


### Question 8
SELECT nom_recette
FROM recette
JOIN composition
USING (num_recette)
JOIN ingredient
USING (num_ingredient)
WHERE LOWER (nom_ingredient) = 'jaune d'oeuf' OR 'viande rouge' OR nom_ingredient=('jaune d'oeuf' AND 'viande rouge') ;

### Question 9
SELECT nom_type_ingredient
FROM produit
JOIN ingredient
USING (num_ingredient)
JOIN type_ingredient