Zmiana istniejących danych w tabeli
Polecenie UPDATE służy do modyfikacji wartości w wierszach, które już istnieją w tabeli.
Składnia UPDATE... SET...
Składnia polega na wskazaniu tabeli, a następnie w klauzuli SET określeniu, które kolumny i na jakie nowe wartości chcemy zmienić. Można aktualizować wiele kolumn naraz, oddzielając je przecinkami.
UPDATE [nazwa_tabeli]
SET [kolumna1] = [nowa_wartość1],
[kolumna2] = [nowa_wartość2],
...;
Przykład
UPDATE Uczniowie
SET Srednia = 4.0
WHERE ID_Ucznia = 102;
Krytyczna rola klauzuli WHERE przy UPDATE (aby nie zmienić wszystkich rekordów!)
Klauzula WHERE w poleceniu UPDATE działa dokładnie tak samo, jak w SELECT: identyfikuje (filtruje), które wiersze mają zostać poddane modyfikacji.
NAJWIĘKSZA PUŁAPKA DML (Data Manipulation Language):
Jeśli zapomnisz o klauzuli WHERE w poleceniu UPDATE, baza danych nie zgłosi błędu. Zamiast tego potraktuje to jako polecenie "zastosuj zmianę SET do wszystkich wierszy w tabeli". Operacje takie należą do DML (manipulacji danymi).
Katastrofalny przykład
UPDATE Uczniowie
SET Srednia = 1.0;
Rezultat: wszyscy uczniowie w tabeli mają teraz średnią 1.0 — dane zostały nadpisane (chyba że mamy aktywną transakcję i możemy wykonać ROLLBACK).
Zasada bezpieczeństwa
Zanim uruchomisz UPDATE, napisz SELECT z tym samym warunkiem WHERE, aby upewnić się, że filtrujesz dokładnie te wiersze, które chcesz zmienić.
-- Sprawdź najpierw, czy wybierasz właściwe wiersze
SELECT * FROM Uczniowie WHERE ID_Ucznia = 102;
-- Dopiero potem wykonaj UPDATE
UPDATE Uczniowie
SET Srednia = 4.0
WHERE ID_Ucznia = 102;