• 6 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 10/01/2023

Mettez à jour les données de votre BDD

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Mettez à jour un objet en particulier

Admettons maintenant qu’un utilisateur souhaite mettre à jour son e-mail via l’application. Comment Foodly traduirait ceci en commande SQL pour MySQL ?

Ici, le mot clé magique est UPDATE, qui signifie “mise à jour” en anglais. Plutôt logique. 😉

Mais avant de se lancer, prenons un peu de recul...

On veut changer l'e-mail d'un utilisateur. J'ai bien dit UN utilisateur et non plusieurs. Cela pose la question de comment identifier l'utilisateur, et comment sélectionner la ligne correspondant.

Maintenant que vous avez cela en tête, tapez cette commande dans votre terminal pour changer l’e-mail du premier utilisateur :

UPDATE `utilisateur` SET `email` = 'quentind@gmail.com' WHERE `id` = '1';

Vous devriez avoir un message qui confirme ce changement :

Query OK, 1 row affected (0.00 sec) 

Rows matched: 1  Changed: 1  Warnings: 0

Prenez le temps de bien lire ce message et de bien comprendre les informations qu'il nous donne.

Décomposons la commande ensemble :

Récapitulatif visuel du paragraphe rédigé ci-dessous
La commande UPDATE 

Mot clé

Description

UPDATE table

Signifie à SQL que vous souhaitez mettre à jour de la donnée dans votre BDD. Vous indiquez aussi la table dans laquelle se trouve(nt) le ou les objets que vous souhaitez modifier.

SET colonne = valeur

Sert à indiquer à SQL quelles sont la ou les colonnes à modifier, et quelles sont la ou les valeurs qu’elles doivent désormais prendre.

WHERE colonne = valeur

C’est ce qu’on appelle un filtre. Vous allez les voir plus en détail dans la partie 3, mais sachez qu’ils servent à restreindre la commande en cours à un ou des objets répondant à des conditions précises. Ici, on va mettre à jour uniquement l’objet dont l’id est 1, soit le premier utilisateur !

Contrôlez les modifications effectuées

Si vous lisez à nouveau les données de votre BDD sur la table “utilisateur”, vous remarquerez que l’e-mail de l’utilisateur avec l’id 1 est celui qu’on vient de taper.

On peut utiliser la commandeSELECT * FROM utilisateur; qui nous donne toutes les lignes de la table, mais également la commandeSELECT * FROM `utilisateur` WHERE `id` = '1';   qui nous donne uniquement la ligne qui nous intéresse.

Mettez à jour tous les objets

À votre avis, que se passerait-il si on tapait la commande :

UPDATE `utilisateur` SET prenom = "quentin";

Indice : ça n'est pas une bonne idée. 😃 Mais comme nous sommes ici pour apprendre, je vous invite à le faire quand même. Notez au passage que je n'ai pas mis de`  autour de  prenom  ! 

Selon toute vraisemblance vous devriez avoir un message de type :  Query OK, 14 rows affected (0.00 sec).

Un petit   SELECT * FROM utilisateur; devrait vous convaincre de faire très attention quand on utilise ce type de commande.

À vous de jouer !

Nous avons oublié de préciser le type de pomme vendue à Intermarché. Il s'agit d'une pomme golden. Comment feriez-vous pour rectifier le tir ?

Essayez de faire la modification dans votre terminal, puis regardez la correction avec le sccrencast :

En résumé

  • On met à jour les objets d’une table avec la commandeUPDATE.

  • Lors de l’utilisation de cette commande, on mentionne quelles sont les colonnes qu’on souhaite mettre à jour avecSET.

  • Pour bien spécifier les objets que l'on souhaite modifier, on ajoute une condition grâce au mot clé WHERE

  • Si on ne filtre pas avec WHERE, on risque de mettre à jour tous les objets de la table. Ce qui est rarement ce que l’on souhaite !

Vous voici capable de modifier la donnée présente dans votre BDD ! Allons encore plus loin : imaginez que vous souhaitiez supprimer de la donnée. Vous allez voir dans le chapitre suivant comment cela se passe !

Exemple de certificat de réussite
Exemple de certificat de réussite