W języku SQL polecenie UPDATE
A. usuwa rekordy z tabeli.
B. dodaje kolumny do istniejącej tabeli.
C. zmienia wartości pól w istniejących rekordach.
D. tworzy nową tabelę.
Polecenie UPDATE w SQL służy do modyfikowania danych, które już znajdują się w tabeli, czyli zmienia wartości pól w istniejących rekordach. To bardzo ważne polecenie z grupy DML, czyli Data Manipulation Language, razem z SELECT, INSERT i DELETE. Przykład z praktyki: UPDATE uczniowie SET klasa = '4TP' WHERE id = 12; zmieni klasę tylko temu uczniowi, którego identyfikator ma wartość 12. Najważniejsza dobra praktyka: prawie zawsze trzeba używać warunku WHERE, bo bez niego zmienione zostaną wszystkie rekordy w tabeli. Z mojego doświadczenia to jeden z najczęstszych i najbardziej bolesnych błędów przy pracy z bazami danych. W systemach produkcyjnych przed UPDATE często robi się SELECT z tym samym WHERE, żeby sprawdzić, które rekordy zostaną ruszone. Warto też korzystać z transakcji, np. START TRANSACTION, potem UPDATE, a na końcu COMMIT albo ROLLBACK, jeśli coś poszło nie tak. UPDATE nie zmienia struktury tabeli, tylko jej zawartość.
W tym pytaniu łatwo pomylić operacje na danych z operacjami na strukturze bazy, a to w SQL jest dość istotna różnica. Tworzenie nowej tabeli nie ma związku z UPDATE, ponieważ do tego używa się instrukcji CREATE TABLE. CREATE TABLE definiuje obiekt bazy danych, jego kolumny, typy danych, klucze i ograniczenia, czyli zajmuje się schematem, a nie pojedynczymi wartościami zapisanymi w rekordach. Dodawanie kolumn do istniejącej tabeli również nie jest zadaniem UPDATE. Taką zmianę wykonuje się przez ALTER TABLE, na przykład ALTER TABLE produkty ADD cena DECIMAL(10,2);. To nadal jest modyfikacja struktury, nie treści rekordów. Usuwanie rekordów z tabeli realizuje polecenie DELETE FROM, zwykle z warunkiem WHERE, aby nie skasować całej zawartości tabeli przez przypadek. Typowy błąd myślowy polega na tym, że ktoś widzi słowo update jako ogólne aktualizowanie bazy i wrzuca tam wszystko: tworzenie tabel, dodawanie kolumn, kasowanie danych. W praktyce SQL jest bardziej precyzyjny. UPDATE aktualizuje istniejące wiersze, czyli zmienia wartości w kolumnach, np. status zamówienia, adres e-mail użytkownika albo stan magazynowy produktu. Moim zdaniem warto zapamiętać prosty podział: CREATE i ALTER dotyczą budowy tabel, INSERT dodaje nowe rekordy, UPDATE zmienia istniejące dane, a DELETE usuwa rekordy. Taki podział bardzo pomaga przy pisaniu bezpiecznych zapytań.