W języku SQL, aby zaktualizować dane w wierszach tabeli, należy zastosować polecenie
A.
UPDATEB.
SELECTC.
ALTER TABLE
D.
INSERT INTO
Pytanie z egzaminu CKE, styczeń 2022 (arkusz E.14-SG-22.01).
Polecenie UPDATE służy w SQL do modyfikowania danych już istniejących w tabeli, czyli dokładnie do aktualizacji wartości w wybranych wierszach. Typowy zapis wygląda tak: UPDATE klienci SET email = '[email protected]' WHERE id = 15; W praktyce najważniejszy jest warunek WHERE, bo bez niego baza zaktualizuje wszystkie rekordy w tabeli, co potrafi narobić sporo bałaganu. Z mojego doświadczenia to jeden z najczęstszych i najbardziej bolesnych błędów początkujących. Dobra praktyka jest taka, żeby przed wykonaniem UPDATE najpierw sprawdzić rekordy poleceniem SELECT z takim samym warunkiem WHERE. W systemach produkcyjnych często wykonuje się też operację w transakcji, np. BEGIN, UPDATE, kontrola wyniku i dopiero COMMIT. UPDATE należy do instrukcji DML, czyli języka manipulowania danymi, obok INSERT, DELETE i SELECT. To podstawowa komenda przy edycji profilu użytkownika, zmianie ceny produktu, aktualizacji statusu zamówienia czy poprawianiu błędnych danych w bazie.
W tym pytaniu łatwo pomylić polecenia SQL, bo wszystkie wyglądają trochę podobnie i wszystkie pracują jakoś na tabelach, ale ich rola jest zupełnie inna. ALTER TABLE nie służy do zmiany wartości w rekordach, tylko do modyfikowania struktury tabeli. Za jego pomocą można dodać kolumnę, zmienić typ danych kolumny albo usunąć ograniczenie. To jest poziom schematu bazy, a nie poziom konkretnych danych zapisanych w wierszach. Jeśli ktoś chce poprawić adres e-mail klienta, to ALTER TABLE byłoby kompletnie nietrafione, bo nie dotyka pojedynczego rekordu w taki sposób. INSERT INTO odpowiada za dodawanie nowych wierszy do tabeli. Czyli używa się go wtedy, gdy powstaje nowy klient, nowe zamówienie albo nowy wpis w dzienniku zdarzeń. Typowy błąd myślowy polega na tym, że skoro coś ma się pojawić w tabeli, to wybiera się INSERT, ale aktualizacja istniejącego rekordu to nie dodanie rekordu. SELECT natomiast pobiera dane i zwraca wynik zapytania, ale standardowo niczego nie zmienia w bazie. Moim zdaniem warto zapamiętać prosty podział: SELECT czyta, INSERT dodaje, UPDATE zmienia istniejące dane, DELETE usuwa, a ALTER TABLE zmienia konstrukcję tabeli. W prawdziwych aplikacjach webowych ta różnica jest bardzo ważna, bo pomylenie tych instrukcji może prowadzić do utraty spójności danych albo do wykonania operacji, która w ogóle nie rozwiązuje problemu.