Database
 sql >> Datenbank >  >> RDS >> Database

SQL-UPDATE für Anfänger

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.