Aktualizacja zapisanych danych w SQL
Bardzo często zdarza się, że zapisane dane w bazie danych muszą zostać zaktualizowane. Przykładowo jeśli mamy tabelę przechowującą numery telefonów komórkowych do naszych klientów to wiadomo, że nikt przez całe życie nie korzysta z jednej karty SIM to też od czasu do czasu wymagane jest zaktualizowanie zapisanych danych. Nikt chyba nie chciał by tracić czas, na dzwonienie pod dawno nieaktualny numer?
SQL oferuje oczywiście specjalne mechanizmy, które umożliwiają przeprowadzenie szybko i sprawnie takiego zabiegu. Dane już zapisane w tabeli modyfikujemy za pomocą instrukcji UPDATE
. Przyjrzyjmy się jej ogólnej składni:
UPDATE nazwaTabeli SET kolumna1 = "nowa wartość", kolumna2 = "nowa wartość" WHERE id = "1"; --warunek logiczny do jednoznacznej identyfikacji danych
Przykład:
UPDATE klienci SET NumerTelefonu = "123456789" WHERE Id = "1";
W klauzuli SET
możemy nie tylko podawać nową wartość, ale również używać wyrażeń arytmetycznych:
UPDATE tab1 SET cena = cena + 4 WHERE Id = '1';
Oczywiście można również przeprowadzić aktualizację danych na podstawie wartości z innej tabeli:
UPDATE tab1 SET cena *= 2 FROM tab2 WHERE Id = '1';
Powyższe zapytanie pomnoży przez dwa wszystkie ceny produktów (z tabeli tab1
) na temat których, zapisane są informację w tabeli tab2
(warunek podany po klauzuli WHERE będzie spełniony – w naszym przypadku będzie to jeden produkt).
UWAGA: Podanie w zapytaniu UPDATE
warunku logicznego po WHERE
służącego do jednoznacznej identyfikacji rekordów jest obowiązkowe!
A gdybym chciał zmienić wszystkie rekordy w jednej kolumnie np październik na listopad w kolumnie miesiące?
Hej J. Kosik,
Spróbuj tak:
UPDATE myTable SET month = 'Listopad’ WHERE month = 'Październik’;