W bazie danych sklepu spożywczego pod koniec dnia jest tworzony raport wyświetlający te produkty wraz z ich dostawcami, dla których stan magazynowy jest mniejszy niż 10 sztuk. Do zdefiniowania tego raportu posłużono się kwerendą
SELECTSELECT z warunkiem w WHERE odczytuje produkty o stanie poniżej 10 sztuk.CHECK TABLE
CHECK TABLE sprawdza tabelę pod kątem uszkodzeń, nie wybiera danych.INSERT INTO
INSERT INTO dodaje nowe rekordy do tabeli.UPDATEUPDATE zmienia wartości w istniejących rekordach, a raport tylko je wyświetla.Pytanie z egzaminu CKE, czerwiec 2016 (arkusz E.14-X-16.05).
Raport tylko pokazuje dane, które już są w bazie: produkty, ich dostawców i stan magazynowy poniżej 10 sztuk. Do odczytu służy kwerenda SELECT, a warunek wyboru zapisuje się w klauzuli WHERE. Dostawców z osobnej tabeli dołącza się złączeniem, na przykład SELECT p.nazwa, d.nazwa FROM produkty p JOIN dostawcy d ON p.id_dostawcy = d.id WHERE p.stan < 10;
Kwerenda wybierająca niczego w bazie nie zmienia, więc można ją uruchamiać codziennie bez ryzyka dla danych. Reguła: raport, zestawienie i wyszukiwanie to zawsze SELECT, natomiast polecenia zmieniające dane stosuje się wtedy, gdy coś trzeba dopisać, poprawić albo usunąć.
Wybór innej kwerendy oznacza zwykle, że raport został potraktowany jak operacja na danych. UPDATE zmienia wartości w istniejących wierszach, na przykład podnosi stan magazynowy po dostawie. Raport niczego nie poprawia, więc takie polecenie nie ma tu zastosowania.
INSERT INTO dopisuje nowe rekordy, na przykład kolejny produkt albo nowego dostawcę. Wynikiem raportu nie są nowe wiersze w tabeli, tylko zestawienie istniejących. CHECK TABLE to polecenie administracyjne MySQL: sprawdza, czy tabela nie jest uszkodzona, i zwraca komunikat o jej stanie, a nie listę produktów.
Wyświetlenie produktów spełniających warunek to klasyczne zapytanie wybierające SELECT z klauzulą WHERE.
Przy podobnych zadaniach wystarczy zadać sobie pytanie, czy po wykonaniu kwerendy zawartość bazy ma się zmienić. Jeśli nie, a chodzi tylko o zestawienie lub wyszukanie danych, potrzebne jest zapytanie wybierające.