KWALIFIKACJA INF2 + INF3 - CZERWIEC 2015

PYTANIE NR 25.
Polecenie SQL treści: UPDATE artykuły SET cena = cena * 0.7 WHERE kod = 2; oznacza
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
UPDATE modyfikuje istniejące rekordy w tabeli. Wyrażenie SET cena = cena * 0.7 ustawia nową cenę jako 70% poprzedniej (czyli obniża o 30%). Klauzula WHERE kod = 2 ogranicza zmianę wyłącznie do wierszy, w których kolumna kod ma wartość 2, a nie do całej tabeli.

Pełne wyjaśnienie:

Polecenie SQL UPDATE artykuły SET cena = cena * 0.7 WHERE kod = 2; należy do języka DML (Data Manipulation Language), czyli służy do modyfikowania danych już zapisanych w tabeli.

Jak działa ta instrukcja?

  • UPDATE artykuły wskazuje tabelę, w której mają zostać zmienione dane.
  • SET cena = cena * 0.7 oznacza, że dla każdego wybranego wiersza wartość w kolumnie cena zostanie zastąpiona wynikiem działania: stara_cena × 0,7. Zostaje więc 70% wartości, co odpowiada obniżce o 30%.
  • WHERE kod = 2 to warunek selekcji wierszy. Instrukcja zadziała tylko na rekordach, dla których w kolumnie kod znajduje się liczba 2. Pozostałe wiersze nie zostaną zmienione.

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

  • Stwierdzenie, że obniżka dotyczy "wszystkich artykułów", ignoruje klauzulę WHERE. W praktyce to typowy błąd: pominięcie warunku powoduje mylne wrażenie, że aktualizacja obejmuje całą tabelę.
  • Odpowiedzi mówiące o "wprowadzeniu nowych pól" dotyczą operacji typu DDL (np. ALTER TABLE), a nie UPDATE. UPDATE nie dodaje kolumn, tylko zmienia wartości w istniejących kolumnach dla wskazanych wierszy.
  • Sformułowanie o "znaczniku kod" nie ma sensu w SQL: kod jest kolumną/atrybutem, a nie znacznikiem. Takie określenia pojawiają się raczej w HTML/XML, nie w bazach danych.

Wskazówka egzaminacyjna: zawsze czytaj UPDATE w trzech krokach: która tabela, co ustawiam w SET, oraz które wiersze obejmuje WHERE. Jeśli brakuje WHERE, zmiana dotyczy wszystkich rekordów.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Polecenie UPDATE służy do zmiany wartości w istniejących rekordach (wierszach) tabeli. Nie tworzy nowych kolumn ani tabel, tylko modyfikuje dane. Zakres zmian zwykle ogranicza się klauzulą WHERE, aby nie zmienić wszystkich wierszy.
WHERE wybiera wiersze, które mają zostać zmodyfikowane. W przykładzie warunek kod = 2 oznacza, że zmienią się tylko rekordy z wartością 2 w kolumnie kod. Bez WHERE aktualizacja objęłaby wszystkie wiersze tabeli.
Jeśli nowa wartość to cena * 0.7, to zostaje 70% ceny wyjściowej. Różnica do 100% wynosi 30%, więc jest to obniżka o 30%. To typowy zapis rabatu procentowego w SQL, gdy wartości są liczbami.
Nie. UPDATE nie dodaje kolumn, tylko zmienia dane w już istniejących kolumnach. Dodawanie kolumn wykonuje się poleceniami DDL, np. ALTER TABLE. W zadaniach egzaminacyjnych to częsta pułapka: mylenie DML z DDL.
Aktualizacja obejmie całą tabelę, gdy w instrukcji UPDATE nie ma klauzuli WHERE albo gdy warunek jest zawsze prawdziwy. Dlatego w praktyce przed wykonaniem UPDATE warto sprawdzić SELECT z tym samym WHERE, aby zobaczyć, które rekordy zostaną zmienione.
Najprościej wykonać zapytanie selekcyjne: SELECT * FROM artykuły WHERE kod = 2; To pokaże dokładnie te wiersze, które spełniają warunek. Dopiero potem bezpieczniej wykonać UPDATE z tym samym WHERE, aby nie zmienić niechcianych danych.
Najczęstsze błędy to: pomijanie WHERE (i wybór odpowiedzi "dla wszystkich"), mylenie UPDATE z dodawaniem kolumn, oraz błędna interpretacja działań (np. traktowanie * 0.7 jako "minus 0,7"). Warto czytać polecenie fragmentami.
Może zmienić zarówno jedną wartość, jak i wiele wierszy jednocześnie. To zależy od warunku w WHERE. Jeśli WHERE wybiera jeden rekord (np. po kluczu głównym), zmieni się jeden wiersz. Jeśli wybiera wiele rekordów, zmienią się wszystkie pasujące wiersze.
W warunku kod = 2 słowo kod to nazwa kolumny, a 2 to wartość, z którą porównujemy. Warunek mówi: "wybierz te rekordy, w których w kolumnie kod jest 2". To nie oznacza "druga kolumna" ani "znacznik".
Ćwicz na małych tabelach: wykonuj SELECT z warunkiem, a potem UPDATE z tym samym WHERE i sprawdzaj wynik. Utrwal schemat: tabela → SET (co zmieniam) → WHERE (kogo zmieniam). Dodatkowo pamiętaj różnicę DML vs DDL.
info

Statystycznie 60% uczniów zna prawidłową odpowiedź. średnie

Według specjalistów z branży: "UPDATE modyfikuje istniejące rekordy w tabeli."

Źródła:

  • PostgreSQL Documentation (current): "UPDATE — update rows of a table", https://www.postgresql.org/docs/current/sql-update.html - accessed 2026-03-01
  • MySQL 8.0 Reference Manual: "UPDATE Statement", https://dev.mysql.com/doc/refman/8.0/en/update.html - accessed 2026-03-01
  • SQLite Documentation: "UPDATE", https://www.sqlite.org/lang_update.html - accessed 2026-03-01

Materiały:

  • Dokumentacja wybranego DBMS: sekcja UPDATE (PostgreSQL/MySQL/SQLite)
  • Ćwiczenia z SQL DML na przykładowej bazie (sklep, magazyn)
  • Krótkie notatki: różnice między DDL (CREATE/ALTER) a DML (INSERT/UPDATE/DELETE)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego