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

Tabela o nazwie naprawy zawiera pola klient, czyNaprawione. Aby oznaczyć jako naprawione wszystkie rekordy klienta Kowalski, należy posłużyć się poleceniem

A.
UPDATE naprawy SET czyNaprawione = TRUE;
B.
UPDATE naprawy SET czyNaprawione = TRUE WHERE klient = 'Kowalski';
C.
ALTER TABLE naprawy SET czyNaprawione = TRUE WHERE klient = 'Kowalski';
D.
UPDATE czyNaprawione SET naprawy = TRUE WHERE klient = 'Kowalski';
Polecenie UPDATE naprawy SET czyNaprawione = TRUE WHERE klient = 'Kowalski'; jest właściwe, bo używa instrukcji UPDATE do modyfikowania istniejących rekordów w tabeli. Najpierw wskazujemy tabelę, czyli naprawy, potem po słowie SET podajemy kolumnę, którą chcemy zmienić: czyNaprawione. Wartość TRUE oznacza, że pole logiczne zostaje ustawione na prawdę, czyli w tym kontekście naprawa jest oznaczona jako wykonana. Bardzo ważna jest część WHERE klient = 'Kowalski', bo ona ogranicza działanie zapytania tylko do rekordów danego klienta. Bez tego warunku zmodyfikowana byłaby cała tabela, co w prawdziwej bazie danych mogłoby być sporą awarią. Moim zdaniem to jest jedna z najważniejszych rzeczy przy pracy z SQL: zanim wykonasz UPDATE albo DELETE, zawsze sprawdź warunek WHERE, najlepiej wcześniej zapytaniem SELECT. Praktycznie można by najpierw uruchomić SELECT * FROM naprawy WHERE klient = 'Kowalski'; i zobaczyć, które rekordy zostaną zmienione. To jest dobra praktyka branżowa, szczególnie przy systemach serwisowych, magazynowych czy CRM, gdzie błędna aktualizacja danych może popsuć historię zleceń.
W tym zadaniu chodzi o zmianę wartości w istniejących rekordach, więc potrzebna jest instrukcja UPDATE, ale użyta zgodnie ze składnią SQL: UPDATE nazwa_tabeli SET nazwa_kolumny = wartość WHERE warunek. Częsty błąd polega na pominięciu warunku WHERE. Zapytanie UPDATE naprawy SET czyNaprawione = TRUE; jest składniowo sensowne, ale logicznie nie pasuje do treści zadania, bo oznaczyłoby jako naprawione wszystkie wpisy w tabeli naprawy, niezależnie od klienta. W realnym systemie serwisu komputerowego byłby to klasyczny przykład niebezpiecznej aktualizacji masowej, po której trudno ustalić, które zlecenia faktycznie były gotowe. Inny błąd to pomylenie nazwy tabeli z nazwą kolumny. Po UPDATE musi stać tabela, a po SET kolumna, której wartość zmieniamy. Konstrukcja sugerująca aktualizowanie tabeli czyNaprawione i ustawianie pola naprawy odwraca role obiektów bazy danych, więc nie opisuje poprawnie struktury danych. Jeszcze inna pomyłka to użycie ALTER TABLE. Ta instrukcja należy do DDL, czyli służy do zmiany struktury tabeli, na przykład dodania kolumny, zmiany typu danych albo usunięcia ograniczenia. Nie używa się jej do aktualizacji pojedynczych rekordów. Z mojego doświadczenia najłatwiej to zapamiętać tak: UPDATE zmienia dane w wierszach, ALTER TABLE zmienia budowę tabeli, a WHERE mówi, których wierszy dotyczy operacja. Przy modyfikowaniu danych trzeba myśleć ostrożnie, bo baza wykona dokładnie to, co napiszemy, nawet jeśli zamiar był trochę inny.

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.