---
title: BDR - grTP1 - Grp_1
tags: grTP1
---
[//]: <> (Ne pas modifier ce qui est au dessus SVP.)
# TP3
### Exercice 1
Requête 1
```SQL
SELECT * from test
```
# Question 1
SELECT nom_recette
FROM recette
WHERE calorie_recette/nombre_personne > 90
# Question 2
SELECT descriptif_produit
FROM produit p
JOIN rangement r
ON p.num_rangement=r.num_rangement
WHERE r.nom_rangement='frigo'
# Question 3
SELECT nom_recette
FROM recette
JOIN composition
ON recette.num_recette=composition.num_recette
JOIN ingredient
ON composition.num_ingredient=ingredient.num_ingrendient
JOIN type_ingredient
ON ingredient.num_type=type_ingredient.num_type_ingredient
WHERE nom_type_ingredient='Fruit de mer'
# Question 4
SELECT nom_recette
FROM recette
EXCEPT (SELECT nom_recette
FROM recette
JOIN composition
ON recette.num_recette=composition.num_recette
JOIN ingredient
ON composition.num_ingredient=ingredient.num_ingrendient
JOIN type_ingredient
ON ingredient.num_type=type_ingredient.num_type_ingredient
WHERE nom_type_ingredient='Fruit de mer')
# Question 5 i
SELECT *
FROM ingredient
JOIN type_ingredient
ON ingredient.num_type=type_ingredient.num_type_ingredient
WHERE nom_type_ingredient='Matière grasse'
# Question 5 ii
CREATE VIEW ingredient_gras AS (SELECT *
FROM ingredient
JOIN type_ingredient
ON ingredient.num_type=type_ingredient.num_type_ingredient
WHERE nom_type_ingredient='Matière grasse')
# Question 5 iii
SELECT ingredient_gras
# Question 5 iv
SELECT nom_recette
FROM recette
JOIN composition
ON recette.num_recette=composition.num_recette
JOIN ingredient_gras
ON composition.num_ingredient=ingredient_gras.num_ingrendient
WHERE (SELECT COUNT(DISTINCT(nom_ingredient))
FROM ingredient_gras
JOIN composition
ON composition.num_ingredient=ingredient_gras.num_ingrendient
JOIN recette
ON recette.num_recette=composition.num_recette
JOIN ingredient_gras
GROUP BY recette) >2
# Question 5 v
SELECT nom_rangement
FROM rangement
JOIN produit
ON rangement.num_rangement=produit.num_rangement
JOIN ingredient
ON ingredient.num_ingredient=produit.num_ingredient
JOIN type_ingredient
ON ingredient.num_type=type_ingredient.num_type_ingredient
WHERE nom_type_ingredient='Matière grasse'
# Question 5 vi
SELECT quantite_produit
FROM produit p
JOIN ingredient_gras i
ON p.num_ingredient=i.num_ingredient
# Question 5 vii
# Question 6
CREATE VIEW matière_grasse_recette
AS (SELECT SUM(quantite_composition),nom_recette
FROM composition
JOIN recette
ON recette.num_recette=composition.num_recette
JOIN ingredient
ON ingredient.num_ingredient=composition.num_ingredient
JOIN type_ingredient
ON ingredient.num_type=type_ingredient.num_type_ingredient
WHERE nom_type_ingredient='Matière grasse')
# Question 7
SELECT recette
CASE WHEN quantite_composition>120 THEN 'recette trop grasse'
WHEN quantite_composition<50 AND quantite_composition>0 THEN 'recette légère'
WHEN quantite_composition=0 THEN 'recette non grasse'
ELSE 'recette moyennement grasse'
END
FROM matiere_grasse_recette
# Question 8
SELECT nom_recette
FROM recette
JOIN composition
ON recette.num_recette=composition.num_recette
JOIN ingredient
ON ingredient.num_ingredient=composition.num_ingredient
WHERE nom_ingredient='Viande rouge' OR nom_ingredient='Jaune d'oeuf'
# Question 9
SELECT nom_type_ingredient
FROM type_ingredient t
JOIN ingredient i
ON i.num_type=t.num_type_ingredient
JOIN produit p
ON i.num_ingredient=p.num_ingredient
WHERE p.date_peremption BETWEEN 01-11-2015 AND 31-12-2015
# Question 10
(SELECT nom_rangement
JOIN produit
ON rangement.num_rangement=produit.num_rangement
JOIN ingredient
ON ingredient.num_ingredient=produit.num_ingredient
JOIN type_ingredient
ON type_ingredient.nm_type_ingredient=ingredient.num_type
WHERE nom_type_ingredient='Fruit')
INTERSECT (SELECT nom_rangement
JOIN produit
ON rangement.num_rangement=produit.num_rangement
JOIN ingredient
ON ingredient.num_ingredient=produit.num_ingredient
JOIN type_ingredient
ON type_ingredient.nm_type_ingredient=ingredient.num_type
WHERE nom_type_ingredient='Légume')
# Question 11
SELECT nom_rangement
FROM rangement r
JOIN produit p
ON r.num_rangement=p.num_rangement
JOIN ingredient i
ON p.num_ingredient=i.num_ingredient
JOIN composition c
ON i.num_ingredient=c.num_ingredient
JOIN recette re
ON c.num_recette=re.num_recette
WHERE nom_recette='crêpes'
# Question 12
Select COUNT(nom_recette)
FROM recette
# Question 13
SELECT COUNT(*)
FROM recette
JOIN composition
ON recette.num_recette=composition.num_recette
JOIN ingredient
ON composition.num_ingredient=ingredient.num_ingrendient
WHERE ingredient.nom_ingredient='oeuf'
# Question 14
# Question 15