# Exercice postgreSQL Retirer le conteneur database (postgresql) et supprimer le volume associé ```shell docker compose down 'database' docker volume rm sql_database_data ``` 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 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 Exemple de stucture du [fichier json](2509331.json) 1. Dans la table item lister les numéros sku et le nom du 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