• 20 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 29/10/2019

Modifiez le contenu de votre base de données

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

Vous venez de voir comment ajouter des informations et interroger votre base de données. Mais le contenu de cette base n'est pas immuable. Vous pouvez le modifier.

Cela se fait simplement et c'est ce que je vais vous montrer dans ce chapitre en m'appuyant toujours sur mon exemple de gestion de tickets dont voici, pour rappel, le MPD :

MPD Gestion de tickets
MPD Gestion de tickets

Modifiez les valeurs enregistrées dans les lignes

La modification de valeurs est réalisée grâce à une requête de type UPDATE.

Modifier le titre du ticket numéro 64 en « Ajouter le nom du commercial sur l'affichage d'un contrat ».

UPDATE ticket
SET titre = 'Ajouter le nom du commercial sur l''affichage d''un contrat'
WHERE numero = 64;

Dans la requête d'UPDATE, les informations à mettre à jour sont listées après le mot-clé SET. Le filtrage des lignes à mettre à jour utilise la clause WHERE comme dans une requête SELECT.

Mais vous pouvez aller plus loin en vous basant sur les données déjà présentes.

Pour les évolutions, augmenter de 1 toutes les priorités supérieures ou égales à 2.

UPDATE evolution
SET priorite = priorite + 1
WHERE priorite >= 2;

Si plusieurs colonnes doivent être mises à jour en même temps, séparez-les par des virgules.

Passer en majuscules le nom et en minuscules le prénom des utilisateurs.

UPDATE utilisateur SET
    nom = upper(nom),
    prenom = lower(prenom)
;

Mais vous pouvez utiliser une clause WHERE plus complexe.

Augmenter de 2 toutes les priorités supérieures ou égales à 3 pour le projet d'id 18.

UPDATE evolution
SET priorite = priorite + 2
WHERE EXISTS (
    SELECT 1 FROM ticket
    WHERE ticket.numero = evolution.ticket_numero
    AND ticket.projet_id = 18
)
AND priorite >= 3;

Supprimez des lignes

La suppression de lignes se fait à l'aide d'une requête de type DELETE.

Là encore vous allez utiliser la clause WHERE pour spécifier les conditions à remplir par les lignes à supprimer.

Supprimer les lignes de la tablehistorique_statutconcernant le projet d'id 18.

DELETE FROM historique_statut
WHERE EXISTS (
    SELECT 1 FROM ticket
    WHERE ticket.numero = historique_statut.ticket_numero
    AND ticket.projet_id = 18
);

Pour les requêtes DELETE, je vous conseille de procéder ainsi pour vous assurer de bien supprimer ce que vous voulez et pas plus (ni moins) :

  1. Commencer par écrire une requête SELECT avec toutes les conditions pour sélectionner les lignes à supprimer :

    -- Le but est de supprimer les associations où un ticket est associé à lui-même.
    
    -- Je commence par rechercher ces associations
    SELECT * FROM ticket_associe
    WHERE ticket_associe_numero = ticket_numero;
  2. Vérifier la liste des lignes remontées par la requête SELECT

  3. Remplacer le SELECT * par DELETE :

    -- Je transforme la requête de SELECT en requête de DELETE
    DELETE FROM ticket_associe
    WHERE ticket_associe_numero = ticket_numero;
Exemple de certificat de réussite
Exemple de certificat de réussite