2025-10-23 07:09:49 +02:00
|
|
|
|
# Exercice postgreSQL
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Retirer le conteneur database (postgresql) et supprimer le volume associé
|
|
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
|
docker compose down 'database'
|
|
|
|
|
|
docker volume rm sql_database_data
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-10-23 09:20:59 +02:00
|
|
|
|
Mettre à jour le projet
|
|
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
|
git pull origin
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
ou si nouveau projet
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
git clone https://sources.neotech.fr/Universite/sql.git
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Construire l'image
|
|
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
|
docker build -t iut/pgsql:2025-12 -f postgresql.Dockerfile .
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Renommer le fichier .env.example en .env
|
|
|
|
|
|
|
2025-10-23 07:09:49 +02:00
|
|
|
|
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
|
|
|
|
|
|
|
2025-10-23 09:20:59 +02:00
|
|
|
|
Exemple de stucture du [fichier json](2509331.json)
|
|
|
|
|
|
|
2025-10-23 09:22:26 +02:00
|
|
|
|
1. Dans la table item lister les numéros sku et le nom du fabriquant (manufacturer).
|
2025-10-23 07:09:49 +02:00
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
2025-10-23 09:38:14 +02:00
|
|
|
|
6. Afficher le total des offres pour les vélos de marque BMC en taille L
|
2025-10-23 07:09:49 +02:00
|
|
|
|
|
|
|
|
|
|
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
|