Mise à jour de données

Objectif

  • Savoir mettre à jour les données d'une table.

Mise en situation

Les informations stockées dans une base de données sont amenées à évoluer.

Imaginez par exemple une table qui stocke le montant disponible sur le compte en banque des clients d'une banque : ce montant évolue et nécessite constamment d'être mis à jour.

Si une première solution pourrait consister à supprimer la valeur précédente et à insérer les données mises à jour, il existe une syntaxe SQL plus puissante qui permet de mettre à jour les valeurs d'attributs spécifiques, et même de modifier plusieurs enregistrements d'un seul coup.

Le langage SQL fournit une instruction pour modifier des tuples existants dans une relation : UPDATE.

SyntaxeMise à jour directe de valeurs

1
UPDATE <Nom de la relation>
2
SET <Liste d affectations Propriété=Valeur, Propriété=Valeur> 
3
WHERE <Condition pour filtrer les tuples à mettre à jour>;

ExempleMise à jour directe de valeurs

1
CREATE TABLE compte (
2
iban VARCHAR(34) PRIMARY KEY,
3
solde INTEGER,
4
monnaie VARCHAR(10)
5
);
6
7
INSERT INTO compte VALUES ('DZkk BBBS SSSS CCCC CCCC CCKK', 1024, 'Franc');
8
INSERT INTO compte VALUES ('DEkk BBBB BBBB CCCC CCCC CC', 2048, 'Franc');
9
INSERT INTO compte VALUES ('ADkk BBBB SSSS CCCC CCCC CCCC', 4096, 'Dollar');
10
11
UPDATE compte
12
SET monnaie = 'Euro'
13
WHERE monnaie = 'Franc';

ExempleMise à jour par calcul sur l'ancienne valeur

1
UPDATE compte
2
SET solde = solde * 6.55957
3
WHERE monnaie = 'Euro';