SQL UPDATE

SQL UPDATE


    


DEFINICJA

Polecenie UPDATE służy do modyfikacji wartości w rekordach tabeli. Po poleceniu UPDATE określamy gdzie, w której tabeli, chcemy zmodyfikować rekord. Po słówku SET określamy które pola w rekordzie chcemy zmodyfikować i jakie wartości chcemy im wstawić. I na sam koniec określamy, który rekord chcemy zmodyfikować czyli korzystamy z warunków po klauzuli WHERE.

SQL UPDATE składnia

UPDATE
    nazwa_tabeli
SET
    nazwa_kolumny1 = wartość1 , nazwa_kolumny2 = wartość2 — itd
WHERE
    warunki_filtrowania_rekordów

PAMIĘTAJ, musisz bardzo dobrze określać warunki dotyczące filtrowania rekordów, jeżli źle je określisz możesz zmodyfikować większą liczbę rekordów (przy okazji tych których nie chciałeś modyfikować). Najlepiej rekordy do modyfikacji znajdować po jakimś niepowtarzalnym identyfikatorze, wtedy mamy pewność, że modyfikujemy dobry rekord.

 


Przykład zastosowania UPDATE (baza Adventureworks)

Zamień imię "Ken" na "Jon" przy osobie Ken Sanchez.

UPDATE Person.Person
SET FirstName = 'Jon'
WHERE BusinessEntityID = 1

 INFO: Ktoś może zapytać dlaczego nie wyszukujemy do modyfikacji rekordu po imieniu i nazwisku. Odpowiedź jest prosta, bo jeśli w bazie znalazły by się dwie osoby o takim samym imieniu i nazwisku to system zmodyfikowałby imiona przy obu tych osobach. Dlatego musimy znaleźć taką wartość która jednoznacznie identyfikuje dany rekord. W przypadku tabeli Person.Person taką kolumną jest BusinessEntityID a rekord z osobą Ken Sanchez ma w tym polu wartość 1. Dlatego nasz warunek który jednoznacznie identyfikuje rekrod z Kenem wygląda następująco WHERE BusinessEntityID = 1.


Przykład zastosowania UPDATE (baza Northwind)

Ktoś zauważył, że w systemie Pani Nacy Davolio ma wpisane, że pracuje o rok dłużej, popraw ten błąd (obecna data zatrudnienia w bazie to 1992-05-01).

UPDATE Employees
SET HireDate = '1993-05-01 00:00:00.000'
WHERE EmployeeID = 1

INFO: Tak jak w przykładzie z bazy AdventureWorks nie wyszukujemy rekordu po imieniu i nazwisku bo może zdarzyć się taka sytuacja, że w bazie jest więcej osób o tym samym imieniu i nazwisku. Dlatego szukamy pola którego wartość jednoznacznie identyfikuje rekord który szukamy w naszym przypadku jest to pole EmployeeID. Ponieważ rekord z danymi dotyczącymi Pani Davolio ma identyfikator 1 to warunek wygląda tak jak na powyższym przykładzie.