Zadanie 3: Sklep komputerowy — zapytania SELECT
PodstawowyPo co się tego uczymy?
Teraz, gdy baza sklep_komputerowy ma już dane z Zadania 2, czas nauczyć się z niej realnie korzystać — czyli wyciągać z niej odpowiedzi na konkretne pytania biznesowe.
Treść zadania
Scenariusz: Masz już wypełnioną bazę sklep_komputerowy z Zadania 2. Teraz klient (albo Ty sam jako sprzedawca) zaczyna zadawać bazie konkretne pytania — a Twoim zadaniem jest umieć na nie odpowiedzieć samym SQL-em, bez przeglądania danych ręcznie.
Do wykonania — napisz zapytania SELECT odpowiadające na poniższe pytania:
1. Pokaż wszystkie produkty droższe niż 1000 zł.
2. Pokaż produkty z kategorii "Karty graficzne", posortowane malejąco po cenie.
3. Znajdź klientów, których adres e-mail zawiera "gmail".
4. Pokaż 3 najtańsze produkty w całym sklepie.
5. Pokaż produkty, których nazwa zawiera słowo "Procesor".
6. Pokaż produkty ze stanem magazynowym mniejszym niż 5 sztuk.
7. Pokaż wszystkich klientów posortowanych alfabetycznie po nazwisku.
8. Pokaż nazwę i cenę produktów w przedziale cenowym 500–1500 zł.
Jak zabrać się do zadania
1. Czytaj polecenia po kolei, nie wszystkie naraz.
2. Dla każdego punktu najpierw zapisz słownie: z jakiej tabeli korzystam i jaki dokładnie warunek muszę sprawdzić.
3. Zacznij od najprostszego szablonu SELECT kolumny FROM tabela; i dopisuj kolejne elementy (WHERE, potem ORDER BY, na końcu LIMIT).
4. Testuj każde zapytanie osobno w phpMyAdmin, zanim przejdziesz do następnego punktu.
Jak powinien wyglądać efekt
Zapytanie 4 (3 najtańsze produkty) powinno zwrócić dokładnie 3 wiersze, np.:
+---------------------------+--------+ | nazwa | cena | +---------------------------+--------+ | Dysk SSD 500GB SATA | 219.00 | | Pamięć RAM 16GB DDR5 | 299.00 | | Pamięć RAM 32GB DDR5 | 549.00 | +---------------------------+--------+ 3 rows in set (0.00 sec)
Jeśli Twój wynik ma więcej niż 3 wiersze, brakuje LIMIT. Jeśli mniej niż 3 — sprawdź, czy dane z Zadania 2 rzeczywiście się zapisały.
Typowe problemy i jak sobie z nimi poradzić
LIKE bez znaków %. Co się stało: WHERE email LIKE 'gmail' nie zwraca żadnego wyniku, mimo że klienci z gmailem istnieją. Dlaczego: bez % LIKE działa jak dokładne porównanie całego tekstu. Jak naprawić: użyj '%gmail%', żeby dopasować fragment gdziekolwiek w tekście.
Zła kolejność ORDER BY i LIMIT. Co się stało: zapytanie z LIMIT przed ORDER BY zgłasza błąd składni. Dlaczego: w SQL LIMIT zawsze musi być na samym końcu zapytania, po ORDER BY. Jak naprawić: SELECT ... FROM ... ORDER BY ... LIMIT ...;
Pomylenie ASC z DESC. Co się stało: zapytanie 2 pokazuje najtańsze karty graficzne jako pierwsze, a miało być odwrotnie. Dlaczego: domyślne sortowanie (albo wpisane ASC) jest rosnące, a potrzebne jest malejące. Jak naprawić: dopisz DESC po ORDER BY cena.
Nawiązanie do egzaminu zawodowego
To bezpośrednie ćwiczenie efektu INF.03.4.4.4 ("wyszukuje informacje w bazie danych przy użyciu języka SQL") w formie zbliżonej do pytań z arkusza egzaminacyjnego.
Kryteria sukcesu — sprawdź, czy wykonałeś zadanie poprawnie
Po wykonaniu zadania sprawdź, czy:
1. zapytanie 1 zwraca WIĘCEJ niż 0, ale MNIEJ niż wszystkie 15 produktów,
2. zapytanie 2 zwraca produkty posortowane od najdroższego do najtańszego,
3. zapytanie 4 zwraca dokładnie 3 wiersze — ani więcej, ani mniej,
4. zapytanie 6 faktycznie pokazuje tylko produkty z niskim stanem magazynowym (sprawdź wizualnie wartości w kolumnie ilosc_magazyn),
5. każde zapytanie kończy się średnikiem i nie zgłasza błędu składni.