KWALIFIKACJA INF3 - PAŹDZIERNIK 2016

PYTANIE NR 21.
Istnieje tabela pracownicy z polami: id, imie, nazwisko, pensja. W nowym roku postanowiono podnieść pensję wszystkim pracownikom o 100 zł. Aktualizacja ta w bazie danych będzie miała postać
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Aby podnieść pensję wszystkim pracownikom o 100, trzeba w UPDATE przypisać kolumnie pensja nową wartość wyliczoną z dotychczasowej: pensja = pensja + 100. Polecenia ustawiające pensję na stałą 100 lub mające błędną składnię nie realizują podwyżki.

Pełne wyjaśnienie:

Polecenie UPDATE służy do modyfikacji istniejących rekordów w tabeli. W zadaniu celem jest podniesienie wartości pensji o stałą kwotę 100 dla wszystkich pracowników, czyli dla wszystkich wierszy tabeli pracownicy. Taki efekt uzyskuje się wtedy, gdy w klauzuli SET po prawej stronie przypisania użyjemy aktualnej wartości kolumny i wykonamy na niej działanie arytmetyczne.

Dlatego poprawna postać aktualizacji to przypisanie: pensja = pensja + 100. Oznacza to: "weź bieżącą wartość z kolumny pensja w danym wierszu i dodaj do niej 100, a wynik zapisz z powrotem do tej samej kolumny". Brak klauzuli WHERE jest tu celowy, bo zadanie mówi o wszystkich pracownikach.

  • Odpowiedź z ustawieniem pensja = 100 jest błędna, bo nie zwiększa pensji o 100, tylko nadpisuje ją stałą wartością 100 dla wszystkich rekordów.
  • Odpowiedzi typu UPDATE pensja SET ... są błędne koncepcyjnie, ponieważ pensja jest nazwą pola, a w składni SQL po słowie UPDATE podaje się nazwę tabeli, nie kolumny.
  • Zapisy w rodzaju SET +100 lub SET 100 są niepoprawne składniowo: w SET musi wystąpić przypisanie do kolumny (np. kolumna = wyrażenie).

W praktyce przed wykonaniem takiej operacji w systemie produkcyjnym warto użyć transakcji (jeśli silnik ją obsługuje) lub wykonać kopię zapasową oraz sprawdzić, czy kolumna pensja ma typ liczbowy, aby dodawanie było jednoznaczne.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
UPDATE modyfikuje istniejące dane w tabeli, czyli zmienia wartości w już zapisanych wierszach. W połączeniu z SET wskazuje, które kolumny i na jakie wartości mają zostać ustawione. Z WHERE można ograniczyć aktualizację do wybranych rekordów.
Stosuje się wyrażenie po prawej stronie przypisania, np. kolumna = kolumna + 100. Dzięki temu każda wartość jest liczona na podstawie bieżącej wartości w danym wierszu. Brak klauzuli WHERE oznacza, że operacja obejmie wszystkie rekordy tabeli.
Bo to jest nadpisanie wartości stałą, a nie jej zwiększenie. Taki zapis ustawi wszystkim pracownikom identyczną pensję równą 100 (w jednostkach bazy), niezależnie od wcześniejszej wysokości wynagrodzenia. Podwyżka wymaga użycia dotychczasowej wartości: pensja = pensja + 100.
WHERE jest potrzebne, gdy aktualizacja ma dotyczyć tylko części wierszy, np. jednego pracownika po id albo pracowników z danego działu. Jeśli WHERE nie ma, większość silników SQL zaktualizuje wszystkie rekordy tabeli, co bywa ryzykowne. Na egzaminie zwróć uwagę na słowa "wszystkim", "tylko", "wybranym".
Dodaje się warunek, np. UPDATE pracownicy SET pensja = pensja + 100 WHERE id = 5;. Wtedy zmieni się tylko wiersz spełniający warunek. To częsty wariant zadań: sprawdza jednocześnie składnię UPDATE i umiejętność bezpiecznego ograniczania zakresu zmian.
Tak, w SET po prawej stronie przypisania można używać wyrażeń, np. dodawania, odejmowania czy mnożenia, o ile typ danych na to pozwala. Przykładowo pensja = pensja * 1.05 oznacza podwyżkę o 5%. Trzeba pamiętać o typach liczbowych i ewentualnym zaokrąglaniu.
W standardowej składni SQL po słowie UPDATE podaje się nazwę tabeli, bo aktualizacja dotyczy wierszy tej tabeli. Kolumny wskazuje się dopiero w SET. Podanie kolumny (np. "UPDATE pensja …") miesza pojęcia i prowadzi do błędu składni lub błędnej interpretacji zadania.
Większość narzędzi i silników bazy danych po wykonaniu UPDATE zwraca liczbę zmodyfikowanych wierszy (np. komunikat w konsoli lub wynik w kliencie SQL). To ważna praktyka kontrolna: jeśli miało zmienić się kilka rekordów, a zmieniły się wszystkie, oznacza to zwykle brak lub błąd w WHERE.
Nie zawsze. Jest poprawny, gdy świadomie chcesz zmienić dane we wszystkich wierszach (tak jak w zadaniu z podwyżką dla wszystkich pracowników). W praktyce jest to jednak operacja ryzykowna, więc często wykonuje się ją w transakcji i poprzedza SELECT-em kontrolnym, aby upewnić się co do zakresu zmian.
Tag <span> to element HTML używany do wyróżnienia fragmentu tekstu w treści strony (np. nazwy tabeli lub pól). Nie ma on żadnego wpływu na składnię SQL ani na działanie zapytania — jest tylko formatowaniem prezentacji w zadaniu. Na egzaminie ignoruj znaczniki i skup się na treści.
info

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

Specjaliści zwracają uwagę: "Aby podnieść pensję wszystkim pracownikom o 100, trzeba w UPDATE przypisać kolumnie pensja nową wartość wyliczoną z dotychczasowej: pensja = pensja + 100."

Źródła:

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

Materiały:

  • Dokumentacja używanego systemu bazy danych: sekcja dotycząca UPDATE
  • Ćwiczenia z CRUD (INSERT/SELECT/UPDATE/DELETE) na prostych tabelach
  • Materiały o bezpieczeństwie zmian danych: transakcje i kopie zapasowe

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego