Ten artykuł zawiera podstawową UPDATE
SQL oświadczenia, których początkujący mogą używać do aktualizowania danych w swoich tabelach bazy danych.
Zaktualizuj pojedynczą kolumnę
Oto podstawowy przykład SQL UPDATE
oświadczenie.
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
W tym przypadku zaktualizowaliśmy wartość pojedynczej kolumny o nazwie LastName
.
UPDATE
instrukcja zaczyna się od UPDATE
, a następnie nazwa tabeli (tj. tabela zawierająca dane, które chcesz zaktualizować).
Następnie ma SET
słowo kluczowe, po którym następuje kolumna, którą chcesz zaktualizować, oraz nowa wartość, oddzielone znakiem równości (=
) operatora.
Zawsze należy dołączyć WHERE
klauzuli, chyba że chcesz zaktualizować wszystkie wiersze o tej samej wartości.
Tak, dobrze to przeczytałeś. Pominięcie WHERE
klauzula zaktualizuje wszystkie wiersze o tej samej wartości.
Większość systemów zarządzania bazami danych (DBMS) ma różne inne opcje, których można użyć z UPDATE
oświadczenie, ale te wymienione tutaj są najczęściej używane.
Zaktualizuj wiele kolumn
Aby zaktualizować wiele kolumn, oddziel każdą parę kolumna/wartość przecinkiem.
UPDATE Owners
SET LastName = 'Stallone',
Email = '[email protected]'
WHERE OwnerId = 3;
Przykład
W tym przykładzie aktualizujemy tabelę.
Przede wszystkim wybierzmy zawartość tabeli.
SELECT * FROM Owners;
Wynik:
+-----------+-------------+------------+----------------+-------------------+ | 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 niedawno wyszła za mąż i zmieniła swoje nazwisko, więc zaktualizujemy Simpson
do Stallone
.
Teraz zaktualizujmy tę kolumnę, a następnie ponownie wybierz tabelę.
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
SELECT * FROM Owners;
Wynik:
+-----------+-------------+------------+----------------+-------------------+ | 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] | +-----------+-------------+------------+----------------+-------------------+
Widzimy, że kolumna została zaktualizowana zgodnie z opisem.
Zaktualizuj wiele kolumn
Oto przykład aktualizacji wielu kolumn.
UPDATE Owners
SET LastName = 'Biden',
Email = '[email protected]'
WHERE OwnerId = 4;
SELECT * FROM Owners;
Wynik:
+-----------+-------------+------------+----------------+-------------------+ | 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] | +-----------+-------------+------------+----------------+-------------------+
W tym przypadku zaktualizowaliśmy nazwisko i adres e-mail właściciela 4.
Uwaga! Zapominanie WHERE
Klauzula
UPDATE
oświadczenie może być bardzo niebezpiecznym stwierdzeniem, jeśli nie zachowujesz rozsądku. Jeśli pominiesz WHERE
klauzula, zaktualizujesz wszystkie wierszy w tabeli.
Zróbmy ponownie poprzedni przykład, ale tym razem zapomnimy dołączyć WHERE
klauzula.
UPDATE Owners
SET LastName = 'Stallone';
SELECT * FROM Owners;
Wynik:
+-----------+-------------+------------+----------------+-------------------+ | 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] | +-----------+-------------+------------+----------------+-------------------+
Ups! Teraz wszyscy nazywają się Stallone!
Może się zdarzyć, że rzeczywiście zamierzasz zaktualizować wszystkie wiersze w tabeli, ale takie sytuacje są zwykle dość rzadkie.
Kiedy uruchamiasz zapytania ad hoc, możesz chcieć uruchomić szybki SELECT
instrukcja, która używa tego samego warunku twojego UPDATE
operacja przed faktycznym uruchomieniem UPDATE
operacja.
SELECT * FROM Owners
WHERE OwnerId = 4;
Wynik:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 4 | Boris | Biden | (349) 611-8908 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
To pokazuje nam dokładny wiersz, który zostanie zaktualizowany. Po upewnieniu się, że zwraca poprawny wiersz, możemy kontynuować i użyć tego samego WHERE
klauzula w UPDATE
oświadczenie.