UPDATE katalog SET katalog.cena = [cena]*1.1; Przedstawiona instrukcja zapisana w języku SQL jest przykładem kwerendy
UPDATE katalog SET katalog.cena = [cena]*1.1;Przedstawiona instrukcja zapisana w języku SQL jest przykładem kwerendy
A. krzyżowej.
B. dołączającej.
C. aktualizującej.
D. usuwającej.
Pytanie z egzaminu CKE, czerwiec 2021 (arkusz E.14-SG-21.06).
Instrukcja UPDATE katalog SET katalog.cena = [cena]*1.1; jest przykładem kwerendy aktualizującej, ponieważ używa polecenia UPDATE oraz klauzuli SET do zmiany wartości w istniejących rekordach tabeli. W tym przypadku modyfikowana jest tabela katalog, a konkretnie pole cena. Wyrażenie [cena]*1.1 oznacza podniesienie aktualnej ceny o 10%, czyli np. cena 100 zostanie zamieniona na 110. Nawiasy kwadratowe wokół nazwy pola są często spotykane np. w Microsoft Access, szczególnie gdy chcemy jednoznacznie wskazać nazwę kolumny albo gdy nazwa mogłaby kolidować ze słowami zastrzeżonymi. W praktyce taka kwerenda przydaje się np. przy masowej zmianie cen produktów, aktualizacji stanów magazynowych albo korekcie danych po imporcie. Warto zauważyć ważną rzecz: w zapytaniu nie ma klauzuli WHERE, więc zmiana obejmie wszystkie rekordy w tabeli. Moim zdaniem to jeden z tych szczegółów, które trzeba sobie mocno zapamiętać, bo w prawdziwej bazie można przez to niechcący zmienić setki albo tysiące wierszy. Dobra praktyka branżowa to najpierw sprawdzić zakres zmian zapytaniem SELECT, wykonać kopię zapasową albo użyć transakcji, jeśli system bazy danych to obsługuje.
W tej instrukcji najważniejszym sygnałem jest słowo UPDATE, które w SQL oznacza modyfikowanie istniejących danych w tabeli. Łatwo pomylić rodzaje kwerend, zwłaszcza gdy patrzy się tylko na to, że zapytanie coś robi z danymi, ale w bazach danych konkretne słowa kluczowe mają bardzo precyzyjne znaczenie. Kwerenda krzyżowa służy do zestawień i przekształcania danych w formie tabeli przestawnej, zwykle z agregacją, na przykład zliczaniem sprzedaży według miesięcy i kategorii. Nie zmienia ona bezpośrednio wartości w rekordach, tylko prezentuje dane w innym układzie. Kwerenda usuwająca opiera się na poleceniu DELETE i jej celem jest kasowanie rekordów z tabeli, a tutaj żadne rekordy nie są usuwane. Zmieniana jest tylko zawartość pola cena. Kwerenda dołączająca, często kojarzona z INSERT INTO, dopisuje nowe rekordy do tabeli, czyli zwiększa liczbę wierszy. W pokazanym zapytaniu nie pojawia się tworzenie nowego rekordu, tylko przeliczenie wartości już istniejącej kolumny. Typowy błąd myślowy polega na tym, że każdą operację zmieniającą dane traktuje się ogólnie jako dołączanie albo usuwanie, bez sprawdzenia składni. W praktyce warto czytać zapytanie od pierwszego słowa: UPDATE wskazuje aktualizację, DELETE usuwanie, INSERT dodawanie, a SELECT pobieranie danych. Tutaj dodatkowo klauzula SET mówi dokładnie, które pole ma dostać nową wartość. Brak WHERE oznacza, że aktualizacja obejmie całą tabelę, co jest bardzo ważne przy pracy na rzeczywistych bazach.