Instrukcja aktualizacji danych w SQL ma postać: UPDATE tabela SET kolumna = nowa_wartość WHERE warunek. W tym zadaniu trzeba zamienić w tabeli tab w kolumnie kol wartość 'Ania' na 'Zosia'.
Polecenie UPDATE tab SET kol = 'Zosia' WHERE kol = 'Ania'; jest poprawne, bo:
- UPDATE wskazuje, że modyfikujemy dane (DML), a nie definicję tabeli.
- SET kol = 'Zosia' określa wartość, jaka ma zostać wpisana do kolumny.
- WHERE kol = 'Ania' wybiera tylko te wiersze, które mają zostać zmienione; bez WHERE zmiana objęłaby wszystkie rekordy w tabeli.
Odpowiedź z odwróconym przypisaniem (SET 'Ania' przy WHERE 'Zosia') wykonuje operację w drugą stronę, więc nie spełnia warunku zadania. To typowy błąd wynikający z mylenia "co ustawiam" z "co wyszukuję".
Polecenia typu ALTER TABLE ... dotyczą języka DDL i służą do modyfikacji struktury (np. nazwy kolumny, typu danych, dodania indeksu). Nie służą do podmieniania wartości w wierszach, dlatego nie są właściwe do zamiany 'Ania' na 'Zosia'.
W praktyce, przed masową aktualizacją warto wykonać SELECT z tym samym warunkiem WHERE, aby sprawdzić, ile rekordów zostanie zmienionych, oraz zadbać o kopię/TRANSACTION, jeśli środowisko na to pozwala.