Cet article contient le SQL de base UPDATE
instructions que les débutants peuvent utiliser pour mettre à jour les données dans leurs tables de base de données.
Mettre à jour une seule colonne
Voici un exemple de base du SQL UPDATE
déclaration.
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
Dans ce cas, nous avons mis à jour la valeur d'une seule colonne appelée LastName
.
La UPDATE
l'instruction commence par UPDATE
, suivi du nom de la table (c'est-à-dire la table qui contient les données que vous souhaitez mettre à jour).
Il a alors le SET
mot-clé, suivi de la colonne que vous souhaitez mettre à jour et de la nouvelle valeur, séparés par un égal (=
) opérateur.
Vous devez toujours inclure un WHERE
clause, sauf si vous souhaitez mettre à jour toutes les lignes avec la même valeur.
Oui, tu l'as bien lu. Omettre le WHERE
la clause mettra à jour toutes les lignes avec la même valeur.
La plupart des systèmes de gestion de base de données (SGBD) ont diverses autres options que vous pouvez utiliser avec le UPDATE
déclaration, mais celles répertoriées ici sont les plus couramment utilisées.
Mettre à jour plusieurs colonnes
Pour mettre à jour plusieurs colonnes, séparez chaque paire colonne/valeur par une virgule.
UPDATE Owners
SET LastName = 'Stallone',
Email = '[email protected]'
WHERE OwnerId = 3;
Exemple
Dans cet exemple, nous mettons à jour une table.
Tout d'abord, sélectionnons le contenu du tableau.
SELECT * FROM Owners;
Résultat :
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | [email protected] | | 2 | Bart | Pitt | (231) 465-3497 | [email protected] | | 3 | Nancy | Simpson | (489) 591-0408 | NULL | | 4 | Boris | Trump | (349) 611-8908 | NULL | | 5 | Woody | Eastwood | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Nancy Simpson s'est récemment mariée et a changé son nom de famille, nous allons donc mettre à jour Simpson
à Stallone
.
Maintenant, mettons à jour cette colonne, puis sélectionnons à nouveau le tableau.
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
SELECT * FROM Owners;
Résultat :
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | [email protected] | | 2 | Bart | Pitt | (231) 465-3497 | [email protected] | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Trump | (349) 611-8908 | NULL | | 5 | Woody | Eastwood | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Nous pouvons voir que la colonne a été mise à jour comme spécifié.
Mettre à jour plusieurs colonnes
Voici un exemple de mise à jour de plusieurs colonnes.
UPDATE Owners
SET LastName = 'Biden',
Email = '[email protected]'
WHERE OwnerId = 4;
SELECT * FROM Owners;
Résultat :
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | [email protected] | | 2 | Bart | Pitt | (231) 465-3497 | [email protected] | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Biden | (349) 611-8908 | [email protected] | | 5 | Woody | Eastwood | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Dans ce cas, nous avons mis à jour le nom et l'adresse e-mail du propriétaire 4.
Attention ! Oublier le WHERE
Article
La UPDATE
déclaration peut être une déclaration très dangereuse si vous ne gardez pas votre esprit sur vous. Si vous omettez le WHERE
clause, vous mettrez à jour tous lignes du tableau.
Reprenons l'exemple précédent, mais cette fois nous oublierons d'inclure le WHERE
clause.
UPDATE Owners
SET LastName = 'Stallone';
SELECT * FROM Owners;
Résultat :
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Stallone | (308) 555-0100 | [email protected] | | 2 | Bart | Stallone | (231) 465-3497 | [email protected] | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Stallone | (349) 611-8908 | NULL | | 5 | Woody | Stallone | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Oups! Maintenant, le nom de famille de tout le monde est Stallone !
Il peut y avoir des moments où vous avez en fait l'intention de mettre à jour toutes les lignes de la table, mais ces moments sont généralement assez rares.
Lorsque vous exécutez des requêtes ad hoc, vous souhaiterez peut-être exécuter un rapide SELECT
déclaration qui utilise la même condition de votre UPDATE
opération avant d'exécuter réellement la UPDATE
opération.
SELECT * FROM Owners
WHERE OwnerId = 4;
Résultat :
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 4 | Boris | Biden | (349) 611-8908 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Cela nous montre la ligne exacte qui sera mise à jour. Une fois que nous sommes convaincus qu'il renvoie la bonne ligne, nous pouvons continuer et utiliser ce même WHERE
clause dans la UPDATE
déclaration.