KWALIFIKACJA INF3 - STYCZEŃ 2019

PYTANIE NR 24.
Które polecenie SQL zamieni w tabeli tab w kolumnie kol wartość Ania na Zosia?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawna jest instrukcja UPDATE, ponieważ modyfikuje dane w istniejących wierszach: w części SET ustawia nową wartość 'Zosia', a w części WHERE ogranicza zmianę tylko do tych rekordów, w których w kolumnie kol widnieje 'Ania'. Polecenia ALTER TABLE służą do zmiany struktury tabeli, nie danych.

Pełne wyjaśnienie:

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.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
UPDATE służy do zmiany danych w już istniejących wierszach tabeli (DML). Określasz, które kolumny zmieniasz w części SET oraz które wiersze mają być zmienione w części WHERE.
SET wskazuje nową wartość, która ma zostać zapisana w kolumnie, np. SET kol = 'Zosia'. To jest "wynik" aktualizacji dla wybranych rekordów. Bez SET nie da się określić, co ma zostać zmienione.
WHERE ogranicza aktualizację do określonych wierszy. Jeśli pominiesz WHERE, większość baz zaktualizuje wszystkie rekordy w tabeli, co jest częstym i groźnym błędem na egzaminie i w pracy.
Najpierw uruchom SELECT z identycznym warunkiem WHERE, np. wyszukaj wiersze, gdzie kol = 'Ania'. Dzięki temu wiesz, ile rekordów spełnia warunek i czy nie zmienisz przypadkiem zbyt wielu danych.
UPDATE może zmienić wiele rekordów naraz. Zależy to wyłącznie od warunku WHERE. Jeśli warunek pasuje do 10 wierszy, zmienisz 10 wierszy. Jeśli pasuje do 0, nie zmieni się nic.
UPDATE zmienia dane w wierszach (np. imię klienta). ALTER TABLE zmienia strukturę tabeli (np. typ kolumny, nazwę kolumny, dodanie kolumny). Na podmianę wartości używa się UPDATE, nie ALTER.
Użyj UPDATE z SET dla tej kolumny i WHERE filtrującym stare wartości, np. ustawiasz 'Zosia', a wybierasz wiersze, w których jest 'Ania'. To najprostszy wzorzec masowej podmiany danych tekstowych.
Zależy od narzędzia i trybu pracy. W wielu konsolach/klientach SQL średnik rozdziela polecenia, ale sama baza często akceptuje zapytanie także bez niego. Na egzaminie najważniejsza jest poprawna konstrukcja UPDATE/SET/WHERE.
Najczęstsze pomyłki to: brak WHERE (aktualizacja całej tabeli), odwrócenie wartości w SET i WHERE (zamiana w drugą stronę) oraz użycie ALTER TABLE zamiast UPDATE. Warto zawsze czytać: "co ustawiam" i "co filtruję".
Gdy warunek WHERE nie pasuje do żadnego wiersza, np. w kolumnie nie ma dokładnie wartości 'Ania' (inna wielkość liter, spacje, inna forma zapisu). Składnia jest poprawna, ale liczba zmienionych wierszy wyniesie 0.
info

To pytanie poprawnie rozwiązuje 60% zdających egzamin. średnie

Specjaliści zwracają uwagę: "Polecenia ALTER TABLE służą do zmiany struktury tabeli, nie danych."

Źródła:

  • PostgreSQL Documentation: UPDATE — https://www.postgresql.org/docs/current/sql-update.html (dostęp: 2026-03-01)
  • MySQL 8.0 Reference Manual: UPDATE Statement — https://dev.mysql.com/doc/refman/8.0/en/update.html (dostęp: 2026-03-01)
  • Microsoft Learn: UPDATE (Transact-SQL) — https://learn.microsoft.com/en-us/sql/t-sql/queries/update-transact-sql (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja SQL dla używanego systemu (np. MySQL/PostgreSQL/SQL Server) – dział UPDATE
  • Ćwiczenia: aktualizacja danych w prostych tabelach z różnymi warunkami WHERE
  • Materiały o różnicach między DDL (ALTER TABLE) i DML (UPDATE/INSERT/DELETE)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego