• 40 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

Ce cours existe en livre papier.

course.header.alt.is_certifying

Vous pouvez être accompagné et mentoré par un professeur particulier par visioconférence sur ce cours.

J'ai tout compris !

Mis à jour le 22/05/2019

Supprimez et modifiez des données

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

Vous savez comment insérer des données, vous savez comment les sélectionner et les ordonner selon les critères de votre choix, il est temps maintenant d'apprendre à les supprimer et à les modifier !
Avant cela, un petit détour par le client mysqldump, qui vous permet de sauvegarder vos bases de données. Je ne voudrais en effet pas vous lâcher dans le chapitre de suppression de données sans que vous n'ayez la possibilité de faire un backup de votre base. Je vous connais, vous allez faire des bêtises, et vous direz encore que c'est ma faute… ;)

Sauvegarde d'une base de données

Il est bien utile de pouvoir sauvegarder facilement sa base de données, et très important de la sauvegarder régulièrement. Une mauvaise manipulation (ou un méchant pirate :pirate:) et toutes les données peuvent disparaître. MySQL dispose donc d'un outil spécialement dédié à la sauvegarde des données sous forme de fichiers texte : mysqldump.

Cette fonction de sauvegarde s'utilise à partir de la console. Vous devez donc être déconnecté de MySQL pour la lancer. Si vous êtes connecté, tapez simplement  exit.

Vous êtes maintenant dans la console Windows (ou Mac, ou Linux).
La manière classique de faire la sauvegarde d'une base de données est de taper la commande suivante :

mysqldump -u user -p --opt nom_de_la_base > sauvegarde.sql

Décortiquons cette commande.

  • mysqldump : il s'agit du client permettant de sauvegarder les bases. Rien de spécial à signaler.

  • --opt : c'est une option de mysqldump  qui lance la commande avec une série de paramètres qui font que la commande s'effectue très rapidement.

  • nom_de_la_base : vous l'avez sans doute deviné, c'est ici qu'il faut indiquer le nom de la base que l'on veut sauvegarder.

  • > sauvegarde.sql : le signe > indique que l'on va donner la destination de ce qui va être généré par la commande sauvegarde.sql. Il s'agit du nom du fichier qui contiendra la sauvegarde de notre base. Vous pouvez bien sûr l'appeler comme bon vous semble.

Lancez la commande suivante pour sauvegarder elevage dans votre dossier courant (c'est-à-dire le dossier dans lequel vous étiez au moment de la connexion) :

mysqldump -u sdz -p --opt elevage > elevage_sauvegarde.sql

Puis, allez voir dans le dossier. Vous devriez y trouver un fichier elevage_sauvegarde.sql. Ouvrez-le avec un éditeur de texte.
Vous pouvez voir nombre de commandes SQL qui servent à la création des tables de la base de données, ainsi qu'à l'insertion des données. S'ajoutent à cela quelques commandes qui vont sélectionner le bon encodage, etc.

La base de données est donc sauvegardée. Notez que la commande pour créer la base elle-même n'est pas sauvée. Donc si vous effacez votre base par mégarde, il vous faut d'abord recréer la base de données (avec CREATE DATABASE nom_base), puis exécuter la commande suivante (dans la console) :

mysql nom_base < chemin_fichier_de_sauvegarde.sql

Concrètement, dans notre cas :

mysql elevage < elevage_sauvegarde.sql

Ou directement à partir de MySQL :

USE nom_base;
SOURCE fichier_de_sauvegarde.sql;

Donc :

USE elevage;
SOURCE elevage_sauvegarde.sql;

Suppression

La commande utilisée pour supprimer des données est DELETE. Cette opération est irréversible, soyez très prudent !
On utilise la clause WHERE  de la même manière qu'avec la commande SELECT  pour préciser quelles lignes doivent être supprimées.

DELETE FROM nom_table 
WHERE critères;

Par exemple : Zoulou est mort, paix à son âme :ange: ... Nous allons donc le retirer de la base de données.

DELETE FROM Animal 
WHERE nom = 'Zoulou';

Et voilà, plus de Zoulou :'( !

Si vous désirez supprimer toutes les lignes d'une table, il suffit de ne pas préciser de clause WHERE.

DELETE FROM Animal;

Modification

La modification des données se fait grâce à la commande UPDATE, dont la syntaxe est la suivante :

UPDATE nom_table 
SET col1 = val1 [, col2 = val2, ...] 
[WHERE ...];

Par exemple, vous étiez persuadé que ce petit Pataud était un mâle, mais, quelques semaines plus tard, vous vous rendez compte de votre erreur. Il vous faut donc modifier son sexe, mais aussi son nom. Voici la requête qui va vous le permettre :

UPDATE Animal 
SET sexe='F', nom='Pataude' 
WHERE id=21;

Vérifiez d'abord chez vous que l'animal portant le numéro d'identification 21 est bien Pataud. J'utilise ici la clé primaire (donc id) pour identifier la ligne à modifier, car c'est la seule manière d'être sûr que je ne modifierai que la ligne que je désire. En effet, il est possible que plusieurs animaux aient pour nom "Pataud". Ce n'est a priori pas notre cas, mais prenons tout de suite de bonnes habitudes.

La requête suivante changerait donc le commentaire pour tous les animaux stockés dans la table Animal (ne l'exécutez pas).

UPDATE Animal 
SET commentaires='modification de toutes les lignes';
En résumé
  • Le client mysqldump est un programme qui permet de sauvegarder facilement ses bases de données.

  • La commande DELETE  permet de supprimer des données.

  • La commande UPDATE  permet de modifier des données.

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