W tabeli podzespoly należy zmienić wartość pola URL na "toshiba.pl" dla wszystkich rekordów, gdzie pole producent to TOSHIBA. W języku SQL modyfikacja ta będzie miała postać:
A.
UPDATE podzespoly SET URL = 'toshiba.pl'
Źle. Brak
WHERE zmieni adres we wszystkich rekordach tabeli.B.
UPDATE podzespoly.producent = 'TOSHIBA' SET URL = 'toshiba.pl';
Źle. Po
UPDATE musi stać nazwa tabeli, a warunek idzie do WHERE.C.
UPDATE podzespoly SET URL = 'toshiba.pl' WHERE producent = 'TOSHIBA';
Dobrze.
SET ustawia adres, a WHERE ogranicza zmianę do TOSHIBA.D.
UPDATE producent = 'TOSHIBA' SET URL = 'toshiba.pl';
Źle.
producent to kolumna, nie tabela, a warunek nie może stać po UPDATE.Pytanie z egzaminu CKE, styczeń 2017 (arkusz E.14-X-17.01).
Polecenie
UPDATE ma stałą budowę: nazwa tabeli, po SET nowe wartości kolumn, a po WHERE warunek wybierający rekordy do zmiany. Zapis UPDATE podzespoly SET URL = 'toshiba.pl' WHERE producent = 'TOSHIBA'; zmieni adres tylko w wierszach, w których producent to TOSHIBA. Do zapamiętania: UPDATE tabela, SET co zmienić, WHERE gdzie. Warunek w WHERE wolno pominąć tylko wtedy, gdy naprawdę chcesz zmienić każdy rekord. Przed wykonaniem dużej zmiany warto sprawdzić zakres zapytaniem SELECT * FROM podzespoly WHERE producent = 'TOSHIBA'; z identycznym warunkiem. Jedno polecenie może zmienić kilka kolumn naraz, oddzielonych przecinkami po SET.Każdy z błędnych zapisów łamie budowę polecenia
UPDATE w innym miejscu. Wariant bez WHERE jest składniowo poprawny i dlatego najgroźniejszy: wykona się bez błędu i wpisze „toshiba.pl” we wszystkich rekordach tabeli, także przy podzespołach innych producentów. Dwa pozostałe zapisy próbują umieścić warunek tuż po słowie UPDATE, w miejscu nazwy tabeli - raz jako podzespoly.producent = 'TOSHIBA', raz jako samo producent = 'TOSHIBA'. Serwer oczekuje tam nazwy tabeli, więc zgłosi błąd składni. Warunek zawsze stoi na końcu, po SET i słowie WHERE. Warto też zauważyć, że wartości tekstowe, takie jak toshiba.pl i TOSHIBA, ujmuje się w apostrofy. Zanim uruchomisz polecenie zmieniające dane, przeczytaj je od końca: najpierw warunek, potem zmienianą kolumnę - to pozwala wychwycić brak WHERE przed wykonaniem. Tak samo zbudowane są polecenia DELETE z warunkiem.