54 lines
1.7 KiB
Markdown
54 lines
1.7 KiB
Markdown
# 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
|