---
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