KWALIFIKACJA INF3 - TEST WIEDZY NR 4

PYTANIE NR 27.
Załóż, że masz do czynienia z bazą danych MySQL i chcesz zaktualizować wartość w jednym z rekordów. Jaki fragment kodu prawidłowo zaktualizuje wartość kolumny 'wiek' na '25' dla rekordu o id=3 w tabeli 'osoby'?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Do zmiany wartości w istniejącym rekordzie służy instrukcja UPDATE z częścią SET, a ograniczenie do konkretnego wiersza realizuje WHERE. Zapis UPDATE osoby SET wiek='25' WHERE id=3; zaktualizuje tylko rekord o id=3, nie modyfikując struktury tabeli.

Pełne wyjaśnienie:

Instrukcja UPDATE należy do języka DML (manipulacja danymi) i służy do zmiany wartości w już istniejących wierszach tabeli. Składnia ma kluczowe elementy:

  • UPDATE nazwa_tabeli – wskazuje tabelę, w której zmieniasz dane.
  • SET – określa, które kolumny i na jakie wartości mają zostać ustawione.
  • WHERE – zawęża operację do wybranych rekordów; bez WHERE aktualizacja dotknęłaby wszystkich wierszy tabeli.

Dlatego poprawne jest zapytanie: UPDATE osoby SET wiek='25' WHERE id=3;. Ustawi ono wartość kolumny wiek na 25 tylko dla rekordu o id=3.

Pozostałe propozycje są niepoprawne, bo używają słów kluczowych kojarzonych ze zmianą, ale nie odpowiadają składni aktualizacji danych:

  • ALTER ... SET ... WHERE ...ALTER dotyczy zwykle zmian struktury (DDL), a nie aktualizacji danych w wierszach, i nie ma takiej składni do ustawiania wartości rekordu.
  • CHANGE ... SET ... WHERE ...CHANGE występuje w kontekście zmian definicji kolumn (np. w poleceniach typu ALTER TABLE), ale nie jest samodzielnym poleceniem do modyfikacji danych.
  • MODIFY ... SET ... WHERE ...MODIFY również odnosi się do modyfikacji definicji kolumn w ramach poleceń strukturalnych, a nie do aktualizacji wartości w rekordach.

Wskazówka egzaminacyjna: gdy pytanie mówi o "rekordzie" i "kolumnie", zwykle chodzi o CRUD i DML. Zmiana danych to najczęściej UPDATE/INSERT/DELETE, a zmiana struktury tabeli to ALTER (DDL). Zawsze zwracaj uwagę na obecność WHERE przy aktualizacji pojedynczego wiersza.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
UPDATE służy do zmiany danych w istniejących rekordach tabeli. Używa się go z częścią SET (jakie kolumny zmienić) oraz zwykle z WHERE (które wiersze zmienić), aby nie zaktualizować całej tabeli.
WHERE ogranicza aktualizację do rekordów spełniających warunek, np. id=3. Bez WHERE instrukcja UPDATE wykona się dla wszystkich wierszy tabeli, co jest jedną z najczęstszych i najbardziej kosztownych pomyłek w praktyce.
ALTER dotyczy zmian struktury bazy (np. dodanie kolumny, zmiana typu danych), czyli DDL. Zmiana wartości w wierszu to manipulacja danymi (DML) i wykonuje się ją przez UPDATE. To dwa różne poziomy: schemat vs dane.
Najczęściej stosuje się warunek po kluczu głównym, np. WHERE id=3. Wtedy aktualizujesz jeden, konkretny wiersz. W praktyce warto też sprawdzić liczbę zmienionych wierszy (rows affected), aby upewnić się, że trafiłeś w rekord.
Zwykle nie trzeba, jeśli kolumna ma typ liczbowy (np. INT). Jednak wiele silników SQL akceptuje zapis z cudzysłowami i dokona konwersji. Na egzaminie ważniejsze jest użycie UPDATE/SET/WHERE; w praktyce trzymaj się typów i unikaj zbędnych konwersji.
Wykonasz masową aktualizację wszystkich rekordów w tabeli, ustawiając wskazane kolumny na te same wartości. To typowa awaria danych. W administracji bazą standardem jest zasada: najpierw SELECT z tym samym WHERE, potem dopiero UPDATE.
Wykonaj najpierw zapytanie SELECT z identycznym warunkiem WHERE, np. wybierz rekord o danym id. Dzięki temu widzisz, czy warunek wskazuje właściwe wiersze. To prosta technika minimalizująca ryzyko błędnej aktualizacji.
W części SET podajesz wiele przypisań oddzielonych przecinkami, np. ustawiasz dwie kolumny jednocześnie. Logika jest taka sama: UPDATE + SET + WHERE. W praktyce zmniejsza to liczbę zapytań i upraszcza obsługę edycji danych w aplikacji WWW.
INSERT dodaje nowy rekord, DELETE usuwa istniejący, a UPDATE modyfikuje istniejący. To klasyczny zestaw operacji CRUD. Na egzaminie zwracaj uwagę na słowa: "dodać" (INSERT), "usunąć" (DELETE), "zmienić w rekordzie" (UPDATE).
Najczęstsze to: brak WHERE, pomylenie DDL z DML (ALTER zamiast UPDATE), błędna nazwa tabeli/kolumny oraz literówki w słowach kluczowych. Pomaga nawyk sprawdzania schematu tabeli i układania zapytania w stałym wzorcu.
info

Statystycznie 79% uczniów zna prawidłową odpowiedź. średnio łatwe

Specjaliści zwracają uwagę: "Do zmiany wartości w istniejącym rekordzie służy instrukcja UPDATE z częścią SET, a ograniczenie do konkretnego wiersza realizuje WHERE."

Źródła:

  • MySQL 8.0 Reference Manual: "UPDATE Statement" (dev.mysql.com/doc/refman/8.0/en/update.html) - accessed 2026-02-18
  • MySQL 8.0 Reference Manual: "ALTER TABLE Statement" (dev.mysql.com/doc/refman/8.0/en/alter-table.html) - accessed 2026-02-18
  • MariaDB Knowledge Base: "UPDATE" (mariadb.com/kb/en/update/) - accessed 2026-02-18

Materiały:

  • Dokumentacja MySQL: składnia instrukcji UPDATE
  • Ćwiczenia praktyczne z SQL na przykładowej bazie (CRUD)
  • Materiały o różnicach DDL (ALTER) i DML (UPDATE/INSERT/DELETE)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego