Dieser Artikel enthält grundlegendes SQL UPDATE
Anweisungen, die Anfänger verwenden können, um Daten in ihren Datenbanktabellen zu aktualisieren.
Eine einzelne Spalte aktualisieren
Hier ist ein einfaches Beispiel für das SQL UPDATE
Aussage.
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
In diesem Fall haben wir den Wert einer einzelnen Spalte namens LastName
aktualisiert .
Das UPDATE
Anweisung beginnt mit UPDATE
, gefolgt vom Tabellennamen (d. h. der Tabelle, die die Daten enthält, die Sie aktualisieren möchten).
Es hat dann den SET
Schlüsselwort, gefolgt von der zu aktualisierenden Spalte und dem neuen Wert, getrennt durch ein Gleichheitszeichen (=
)-Operator.
Sie sollten immer ein WHERE
angeben -Klausel, es sei denn, Sie möchten alle Zeilen mit demselben Wert aktualisieren.
Ja, Sie haben richtig gelesen. Weglassen des WHERE
-Klausel aktualisiert alle Zeilen mit demselben Wert.
Die meisten Datenbankverwaltungssysteme (DBMSs) haben verschiedene andere Optionen, die Sie mit dem UPDATE
verwenden können -Anweisung, aber die hier aufgelisteten sind die am häufigsten verwendeten.
Mehrere Spalten aktualisieren
Um mehrere Spalten zu aktualisieren, trennen Sie jedes Spalte/Wert-Paar durch ein Komma.
UPDATE Owners
SET LastName = 'Stallone',
Email = '[email protected]'
WHERE OwnerId = 3;
Beispiel
In diesem Beispiel aktualisieren wir eine Tabelle.
Wählen wir zunächst den Inhalt der Tabelle aus.
SELECT * FROM Owners;
Ergebnis:
+-----------+-------------+------------+----------------+-------------------+ | 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 hat kürzlich geheiratet und ihren Nachnamen geändert, also werden wir Simpson
aktualisieren nach Stallone
.
Jetzt aktualisieren wir diese Spalte und wählen dann die Tabelle erneut aus.
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
SELECT * FROM Owners;
Ergebnis:
+-----------+-------------+------------+----------------+-------------------+ | 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] | +-----------+-------------+------------+----------------+-------------------+
Wir können sehen, dass die Spalte wie angegeben aktualisiert wurde.
Mehrere Spalten aktualisieren
Hier ist ein Beispiel für die Aktualisierung mehrerer Spalten.
UPDATE Owners
SET LastName = 'Biden',
Email = '[email protected]'
WHERE OwnerId = 4;
SELECT * FROM Owners;
Ergebnis:
+-----------+-------------+------------+----------------+-------------------+ | 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] | +-----------+-------------+------------+----------------+-------------------+
In diesem Fall haben wir den Nachnamen und die E-Mail-Adresse von Inhaber 4 aktualisiert.
Achtung! Vergessen des WHERE
Klausel
Das UPDATE
Aussage kann eine sehr gefährliche Aussage sein, wenn Sie nicht bei Verstand bleiben. Wenn Sie WHERE
weglassen -Klausel aktualisieren Sie alle Zeilen in der Tabelle.
Wiederholen wir das vorherige Beispiel, aber dieses Mal vergessen wir, WHERE
einzuschließen Klausel.
UPDATE Owners
SET LastName = 'Stallone';
SELECT * FROM Owners;
Ergebnis:
+-----------+-------------+------------+----------------+-------------------+ | 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] | +-----------+-------------+------------+----------------+-------------------+
Hoppla! Jetzt ist der Nachname aller Stallone!
Es kann Zeiten geben, in denen Sie tatsächlich beabsichtigen, alle Zeilen in der Tabelle zu aktualisieren, aber diese Zeiten sind normalerweise ziemlich selten.
Wenn Sie Ad-hoc-Abfragen ausführen, möchten Sie vielleicht schnell SELECT
ausführen -Anweisung, die dieselbe Bedingung Ihres UPDATE
verwendet Vorgang, bevor das UPDATE
tatsächlich ausgeführt wird Betrieb.
SELECT * FROM Owners
WHERE OwnerId = 4;
Ergebnis:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 4 | Boris | Biden | (349) 611-8908 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Das zeigt uns die genaue Zeile, die aktualisiert wird. Sobald wir zufrieden sind, dass es die richtige Zeile zurückgibt, können wir fortfahren und dasselbe WHERE
verwenden -Klausel im UPDATE
Erklärung.