Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Bazy danych

Które polecenie służy do zmiany wartości o jeden w polu RokStudiów w tabeli Studenci dla studentów, którzy studiują na roku 1÷4?

A.
UPDATE Studenci SET RokStudiow WHERE RokStudiow < 5;
B.
UPDATE Studenci SET RokStudiow = RokStudiow+1 WHERE RokStudiow < 5;
C.
UPDATE RokStudiow SET RokStudiow++ WHERE RokStudiow < 5;
D.
UPDATE Studenci, RokStudiow+1 WHERE RokStudiow < 5;

Pytanie z egzaminu CKE, czerwiec 2020 (arkusz EE.09-SG-20.06).

To polecenie ma właściwą składnię instrukcji UPDATE w SQL: UPDATE Studenci SET RokStudiow = RokStudiow + 1 WHERE RokStudiow < 5;. Najpierw wskazujemy tabelę, czyli Studenci, potem po słowie SET podajemy, które pole ma zostać zmienione i jaką nową wartość ma dostać. Zapis RokStudiow = RokStudiow + 1 oznacza: weź aktualną wartość z kolumny RokStudiow i zwiększ ją o 1. Warunek WHERE RokStudiow < 5 ogranicza zmianę do studentów z lat 1–4, zakładając oczywiście, że w bazie nie ma błędnych wartości typu 0 albo liczby ujemne. Moim zdaniem w praktycznym systemie uczelnianym warto byłoby dopisać bardziej precyzyjnie WHERE RokStudiow BETWEEN 1 AND 4, a dodatkowo pilnować poprawności danych przez ograniczenia CHECK. Dobra praktyka jest taka, żeby przed UPDATE wykonać SELECT z tym samym WHERE i sprawdzić, które rekordy zostaną zmodyfikowane. Przy większych bazach używa się też transakcji, bo omyłkowa aktualizacja bez WHERE potrafi zmienić całą tabelę, a to już mało przyjemna sytuacja.
W tym zadaniu kluczowe jest zrozumienie pełnej składni instrukcji UPDATE, a nie tylko ogólnej idei „zmień coś w tabeli”. W SQL aktualizacja danych wymaga wskazania tabeli po słowie UPDATE, następnie użycia SET oraz przypisania w postaci kolumna = wyrażenie. Samo zapisanie nazwy kolumny albo działania matematycznego bez operatora przypisania nie mówi bazie danych, gdzie ma trafić nowa wartość. Konstrukcja z przecinkiem po nazwie tabeli wygląda trochę jak lista kolumn z SELECT, ale w UPDATE tak się tego nie robi. Również zapis SET RokStudiow WHERE ... jest niepełny, bo brakuje wartości, którą baza ma wpisać do pola. Częsty błąd myślowy polega na tym, że ktoś pamięta, że SET „ustawia pole”, ale zapomina, że ustawianie zawsze ma formę przypisania, na przykład RokStudiow = RokStudiow + 1. Niepoprawne jest też traktowanie kolumny RokStudiow jak nazwy tabeli, bo UPDATE działa na tabeli, a nie bezpośrednio na pojedynczej kolumnie. W standardowym SQL nie stosuje się operatora ++ znanego z niektórych języków programowania, takich jak C, JavaScript czy PHP. Baza danych oczekuje wyrażenia arytmetycznego, czyli po prostu + 1. Z mojego doświadczenia najlepiej zapamiętać schemat: UPDATE tabela SET kolumna = nowa_wartość WHERE warunek. I koniecznie WHERE, bo bez niego zmienisz wszystkie rekordy, co w prawdziwej bazie może zrobić spory bałagan.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.