# Exercice postgreSQL


Retirer le conteneur database (postgresql) et supprimer le volume associé

```shell
docker compose down 'database'
docker volume rm sql_database_data
```

Composer le nouveau conteneur

```shell
docker compose up -d 'database' --build
```

## JSON

Les opérateurs spécifiques JSON

Opérateur|Description|Exemple
---      |--- | ---
->	     | Retourne un objet JSON |SELECT data->'additionalProperty' as propriété from item where id = 2509331;
->>	     | Retourne du texte      |SELECT data->>'name' AS name from item;
#>	     | Accès par chemin       |SELECT data#>'{additionalProperty,groupe}' as propriété from item where id = 2509331
#>>	     | Accès par chemin en texte|SELECT data#>>'{additionalProperty,groupe,manufacturer,name}' as propriété from item where id = 2509331
@>       | Test d'inclusion

Fonctions|Description
---|---
jsonb_array_elements|Extraction en table
jsonb_array_elements_text|Extraction en chaine de caractères
jsonb_each | Renvoie les paires clé/valeur d’un objet JSON
jsonb_object_keys|Liste des clés
jsonb_array_length|Taille d'un tableau

## Questions

1. Dans la table item lister les numéros sku et le fabriquant (manufacturer).

2. Trouver tous les vélos de marque Cannondale

3. Filtrer les vélo dont la taille de cadre est M

4. Afficher le deuxième élément du tableau tailles pour chaque vélo.

5. Afficher le sku et pour chaque taille (dans geometry) la valeur du tube supérieur. Afficher 1 ligne par taille

6. Dans les commandes afficher le total de chaque commande

7. Combien de tailles pour le vélo dont le sku est 2489126

8. Extraire la liste des caractèristiques (uniquement le nom) pour le vélo dont le sku est 2489126
