KWALIFIKACJA INF3 - STYCZEŃ 2017

PYTANIE NR 25.
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.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawna składnia SQL do modyfikacji wybranych rekordów to UPDATE <tabela> SET <kolumna>=<wartość> WHERE <warunek>.
Dlatego właściwe jest zapytanie z tabelą podzespoly, przypisaniem w SET oraz filtrem WHERE producent='TOSHIBA'; bez WHERE zmieniłoby wszystkie wiersze.

Pełne wyjaśnienie:

W SQL do zmiany wartości w istniejących rekordach służy instrukcja UPDATE (DML). Ma ona typową postać:

UPDATE nazwa_tabeli SET kolumna = wartość WHERE warunek;

W tym zadaniu należy ustawić pole URL na wartość 'toshiba.pl', ale tylko dla tych rekordów, w których pole producent ma wartość 'TOSHIBA'. Z tego powodu poprawne zapytanie musi zawierać:

  • nazwę tabeli po słowie UPDATE: podzespoly,
  • klauzulę SET z przypisaniem: SET URL = 'toshiba.pl',
  • klauzulę WHERE zawężającą zakres zmian: WHERE producent = 'TOSHIBA'.

Dlaczego pozostałe odpowiedzi są błędne:

  • UPDATE producent = 'TOSHIBA' SET ... – w tym miejscu powinna być nazwa tabeli, a nie warunek; składnia jest niepoprawna.
  • UPDATE podzespoly.producent = 'TOSHIBA' SET ... – po UPDATE nie zapisuje się kwalifikacji kolumny ani warunku; ponownie brakuje poprawnie podanej nazwy tabeli.
  • UPDATE podzespoly SET URL = 'toshiba.pl' – brak klauzuli WHERE oznacza aktualizację wszystkich rekordów w tabeli, co nie spełnia warunku zadania i w praktyce jest częstym, groźnym błędem.

Wskazówka egzaminacyjna: przed wykonaniem UPDATE warto najpierw ułożyć równoważny SELECT z tym samym WHERE, aby sprawdzić, które rekordy zostaną objęte zmianą.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Najczęściej używa się schematu: UPDATE tabela SET kolumna = wartość WHERE warunek. Część SET wskazuje, co zmieniasz, a WHERE ogranicza, które wiersze zostaną zmodyfikowane.
WHERE ogranicza zakres zmian do wybranych rekordów. Bez WHERE aktualizacja obejmie wszystkie wiersze tabeli, co często prowadzi do masowego nadpisania danych. Na egzaminie to typowy "haczyk" sprawdzający ostrożność.
Jeśli pominiesz WHERE, baza danych zmieni wskazane kolumny we wszystkich rekordach tabeli. To może zniszczyć dane (np. każdy producent dostanie ten sam URL). Dlatego zawsze sprawdzaj warunek lub pracuj na transakcji.
Przed UPDATE wykonaj SELECT z identycznym warunkiem WHERE, np. wybierz kolumny identyfikujące rekord (id, producent). Gdy wynik SELECT jest poprawny, dopiero wtedy uruchom UPDATE z tym samym WHERE.
Użyj UPDATE z warunkiem na kolumnie producent (lub innym atrybucie), np. WHERE producent='TOSHIBA'. Kluczowe jest, aby warunek jednoznacznie wskazywał, które rekordy mają zostać zmienione.
Zależy od silnika bazy danych i ustawień porównywania (kolacji). Czasem 'TOSHIBA' i 'Toshiba' mogą być traktowane jako różne wartości. Na egzaminie zwykle przyjmuje się porównanie zgodne z danym DBMS, więc warto znać podstawowe zasady dla używanego systemu.
W klauzuli SET podajesz kilka przypisań oddzielonych przecinkami, np. SET URL='toshiba.pl', kraj='JP'. Warunek WHERE pozostaje jeden i określa, które wiersze mają dostać nowe wartości.
Stosuj zasadę: najpierw SELECT, potem UPDATE. Dodatkowo korzystaj z transakcji (BEGIN/COMMIT/ROLLBACK), wykonuj kopię zapasową przy większych zmianach i ograniczaj WHERE do możliwie precyzyjnych kryteriów.
Zwykle wynika z pomylenia kolejności elementów (np. warunek w miejscu nazwy tabeli) albo braku słowa SET. Na egzaminie zwracaj uwagę, że po UPDATE ma być nazwa tabeli, potem SET, a dopiero potem WHERE.
Przećwicz: UPDATE z WHERE, UPDATE wielu kolumn, oraz typowe pułapki (brak WHERE, zła nazwa tabeli, brak SET). Warto pisać zapytania na prostych tabelach testowych i obserwować, ile rekordów zostało zmienionych.
info

Około 60% zdających odpowiada poprawnie na to pytanie. średnie

Źródła:

  • PostgreSQL Documentation: "UPDATE" (SQL Command), https://www.postgresql.org/docs/current/sql-update.html - accessed 2026-02-18
  • MySQL 8.0 Reference Manual: "UPDATE Statement", https://dev.mysql.com/doc/refman/8.0/en/update.html - accessed 2026-02-18
  • SQLite Documentation: "UPDATE" (lang_update), https://www.sqlite.org/lang_update.html - accessed 2026-02-18

Materiały:

  • Dokumentacja SQL dla używanego DBMS (np. MySQL, PostgreSQL) – sekcja UPDATE
  • Kurs podstaw SQL: DML i bezpieczeństwo operacji (transakcje, kopie zapasowe)
  • Ćwiczenia: aktualizacje z WHERE, testowanie na kopii danych, użycie transakcji

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego