---
# System prepended metadata

title: BDR - grTP4 - Grp_10
tags: [grTP4]

---

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

# TP3
### Exercice 1
Requête 1

```SQL
SELECT * from test


show search_path;
"$user", tp3
set search_path to "résultat du premier argument du show search_path" ,tp3_recettes

--3. Quels sont les noms des recettes composées de fruits de mer ?
```


/QUESTION 1:Quels sont les noms des recettes de plus de 90 calories par personne ?*
```SQL
SELECT nom_recette FROM recette WHERE calories_recette/nb_personnes>=90
```
/QUESTION 2:Quels sont les descriptifs des produits présents dans le réfrigérateur ?
```SQL
*
SELECT descriptif_produit 
FROM produit 
JOIN rangement USING(num_rangement)
WHERE nom_rangement='réfrigérateur'
```

--3. Quels sont les noms des recettes composées de fruits de mer ?
```sql 
--le code des fruits de mer est 8
SELECT nom_recette FROM recette 
JOIN composition USING(num_recette)
join ingredient using(num_ingredient)
join type_ingredient using(num_type_ingredient)
WHERE num_type_ingredient=8;
```

--4. Quels sont les noms des recettes n’utilisant pas de fruits de mer ?
```sql=
select nom_recette from recette
where num_recette not in (
select num_recette from tp3.recette
join composition using(num_recette)
join ingredient using (num_ingredient)
join type_ingredient using(num_type_ingredient)
where num_type_ingredient=8);
```
OU ALORS
```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 num_type_ingredient=8;
```
5. Les questions suivantes ne font intervenir qu’une partie des ingrédients : ceux de type
« matière grasse ». Nous allons donc créer une vue pour simplifier ces requêtes.
i. Écrivez une requête SELECT retournant les ingrédients du type « matière grasse » (seules
les colonnes de la table ingredient seront retournées)

```sql=
select * from ingredient
join type_ingredient using(num_type_ingredient)
where num_type_ingredient=9;
```
--iii. Affichez le contenu de la vue

```sql=
select * from ingredient_gras;
```
iv. Quelles sont les recettes ayant plus de deux ingrédients gras différents ?
```sql=
select nom_recette, count(nom_recette)  from recette
join composition using(num_recette)
join ingredient_gras using(num_ingredient)
group by nom_recette
having count(nom_recette)>=2;
```
v. Quels sont les rangements ayant des ingrédients gras ?
```sql=


```