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
|