KWALIFIKACJA INF3 - WRZESIEŃ 2015

PYTANIE NR 20.
Baza danych 6-letniej szkoły podstawowej zawiera tabelę szkoła z polami: imie, nazwisko, klasa. Wszyscy uczniowie klas 1 do 5 zdali do następnej klasy. Aby zwiększyć wartość w polu klasa o 1 należy użyć polecenia
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Aby podnieść uczniom klasę o 1, trzeba zmodyfikować istniejące rekordy, więc używa się instrukcji UPDATE z SET.
Warunek WHERE klasa >= 1 AND klasa <= 5 ogranicza zmianę tylko do klas 1–5, a wyrażenie klasa = klasa + 1 zwiększa wartość w kolumnie.

Pełne wyjaśnienie:

W zadaniu trzeba wykonać masową zmianę danych w tabeli (podnieść wartość w kolumnie klasa o 1 dla wybranej grupy uczniów). Do modyfikacji istniejących wierszy służy instrukcja UPDATE, a nie SELECT (SELECT jedynie odczytuje dane).

Poprawna konstrukcja ma dwa kluczowe elementy:

  • SET klasa = klasa + 1 – po prawej stronie można użyć wyrażenia arytmetycznego, które bazuje na dotychczasowej wartości kolumny. Dzięki temu każdy wiersz zostanie zwiększony indywidualnie o 1.
  • WHERE klasa >= 1 AND klasa <= 5 – ogranicza aktualizację do uczniów z klas 1–5. To ważne, bo bez WHERE podniesiono by klasę także uczniom z innych klas (np. kończącym szkołę), co byłoby błędem logicznym.

Dlaczego pozostałe propozycje są niepoprawne:

  • Odpowiedzi zaczynające się od SELECT nie wykonują zmiany danych; dodatkowo mają błędną składnię (np. użycie FROM bez poprawnego wskazania tabeli i próba przypisania w części, gdzie powinna być lista kolumn).
  • Wariant z UPDATE nazwisko, imie SET ... myli listę kolumn z nazwą tabeli: po UPDATE musi wystąpić nazwa tabeli, a nie nazwy pól. Również warunek z OR w postaci "> 1 lub < 5" nie odpowiada intencji przedziału 1–5 i w praktyce obejmowałby zbyt wiele wierszy.

Wskazówka egzaminacyjna: gdy w treści jest "zwiększyć wartość w polu/kolumnie", najczęściej szukasz schematu UPDATE tabela SET kolumna = kolumna + ... WHERE warunek. Jeśli w treści jest "wyświetlić / wypisać / pobrać", wtedy zwykle będzie to SELECT.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
UPDATE służy do modyfikacji istniejących danych w tabeli. Zmieniasz wartości kolumn w wybranych wierszach poprzez SET, a zakres zmian kontrolujesz warunkiem WHERE. Bez WHERE aktualizacja obejmie wszystkie rekordy w tabeli.
Stosuje się wyrażenie arytmetyczne w części SET, np. kolumna = kolumna + 1. Dzięki temu każda wartość jest liczona na podstawie dotychczasowej zawartości pola. Dodatkowo użyj WHERE, aby nie zmienić niechcianych wierszy.
SELECT służy do odczytu danych (wynik to zestaw wierszy), a nie do ich zmiany. W zadaniu trzeba podnieść klasę uczniom, więc wymagane jest polecenie modyfikujące dane: UPDATE. Próba "SELECT ... klasa = klasa + 1" to błąd składni i logiki.
Użyj warunku w WHERE, np. klasa >= 1 AND klasa <= 5 (albo równoważnie BETWEEN 1 AND 5). Operator AND oznacza, że oba warunki muszą być spełnione jednocześnie, więc dostajesz dokładny przedział.
Tak, w wielu bazach (np. PostgreSQL, MySQL, SQLite) zapis klasa BETWEEN 1 AND 5 jest równoważny klasa >= 1 AND klasa <= 5. Na egzaminie oba warianty mogą być poprawne, jeśli zachowują ten sam sens i poprawną składnię.
Gdy łączysz granice przedziału operatorem OR, łatwo objąć prawie wszystkie rekordy. Przykładowo "klasa > 1 OR klasa < 5" jest prawdziwe dla większości liczb, więc aktualizacja będzie zbyt szeroka. Dla przedziału zwykle potrzebujesz AND.
Bez WHERE instrukcja UPDATE zmodyfikuje wszystkie wiersze w tabeli. W praktyce może to oznaczać masowe, nieodwracalne błędy w danych (np. podniesienie klasy każdemu uczniowi). Dobra praktyka: najpierw wykonaj SELECT z tym samym WHERE, by sprawdzić zakres.
Najprościej skopiować warunek z planowanego UPDATE do zapytania SELECT, np. SELECT * z tym samym WHERE. Pozwala to zweryfikować liczbę i treść wierszy przed modyfikacją. W pracy administratora to standard, by uniknąć błędów masowych.
Zależy od silnika i ustawień kodowania, ale w praktyce bywa to problematyczne (przenośność, cytowanie identyfikatorów). Na egzaminie może się pojawić taka nazwa umownie. W realnych projektach webowych częściej stosuje się nazwy bez polskich znaków, np. szkola.
Najczęstsze pomyłki to: użycie SELECT zamiast UPDATE, brak WHERE (zmiana całej tabeli), zły operator logiczny (OR zamiast AND), oraz mylenie nazwy tabeli z nazwą kolumny po słowie UPDATE. Warto ćwiczyć schemat: UPDATE–SET–WHERE.
info

Około 61% 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-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 SQL dla wybranej bazy (MySQL/PostgreSQL): dział UPDATE
  • Ćwiczenia: proste operacje CRUD na jednej tabeli
  • Materiały do INF.3 z zakresu baz danych i języka SQL

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego