INF.03 · Bazy danych i SQL

Sklep komputerowy, część 3: zapytania SELECT

Baza ma już dane, więc czas nauczyć się z niej korzystać: odpowiadać na konkretne pytania sprzedawcy samym SQL-em, bez przeglądania tabel ręcznie. Każde pytanie ma jedną poprawną odpowiedź, a Ty możesz ją sprawdzić po liczbie wierszy.

  • około 40 minut
  • SELECT · WHERE · ORDER BY · LIMIT · LIKE
  • 8 pytań sprzedawcy

Po tej lekcji: napiszesz zapytania z filtrem, sortowaniem, wzorcem tekstu i limitem, a poprawność każdego sprawdzisz po liczbie wyników.

1 · Sytuacja

Pytania, na które odpowie baza

Klient, a czasem Ty sam jako sprzedawca, zadaje bazie pytania. Czytaj polecenia po kolei i dla każdego najpierw zapisz słownie: z jakiej tabeli korzystasz i jaki warunek sprawdzasz. Zacznij od prostego SELECT kolumny FROM tabela; i dopisuj kolejno WHERE, ORDER BY i LIMIT.

Testuj każde zapytanie osobno, zanim przejdziesz do następnego.

2 · Do wykonania

Zadania do wykonania

  1. Pokaż wszystkie produkty droższe niż 1000 zł (nazwa i cena).
    Oczekiwany wynik9 wierszy
  2. Pokaż produkty z kategorii „Karty graficzne” od najdroższego (nazwa i cena). Użyj JOIN z tabelą Kategorie albo numeru kategorii 2.
    Oczekiwany wynik3 wierszepierwszy wiersz: Karta graficzna RTX 4080 SUPER · 5399.00
  3. Znajdź klientów, których adres e-mail zawiera „gmail” (imię, nazwisko, email).
    Oczekiwany wynik4 wiersze
  4. Pokaż 3 najtańsze produkty w całym sklepie (nazwa i cena).
    Oczekiwany wynik3 wierszepierwszy wiersz: Dysk SSD 500GB SATA · 219.00
  5. Pokaż produkty, których nazwa zawiera słowo „Procesor”.
    Oczekiwany wynik3 wiersze
  6. Pokaż produkty ze stanem magazynowym mniejszym niż 5 sztuk (nazwa i stan).
    Oczekiwany wynik4 wiersze
  7. Pokaż wszystkich klientów posortowanych alfabetycznie po nazwisku.
    Oczekiwany wynik8 wierszypierwszy wiersz: Marek · Kamiński
  8. Pokaż nazwę i cenę produktów w przedziale cenowym 500–1500 zł (włącznie z granicami).
    Oczekiwany wynik6 wierszy

3 · Sprawdź się

Czy Twoje wyniki się zgadzają?

To szybka kontrola, a nie ocena. Liczba wierszy jest pierwszym sygnałem, że warunek albo złączenie działa tak, jak trzeba.

Ta interakcja wymaga włączonego JavaScriptu.

4 · Zanim się pomylisz

Cztery pomyłki w zapytaniach SELECT

Rozwiń każdą z nich.

LIKE bez znaków %
Tak nie
SELECT * FROM Klienci WHERE email LIKE 'gmail';

Zero wierszy, choć klienci z gmailem istnieją. Bez % LIKE szuka dokładnie takiego tekstu.

Tak
SELECT * FROM Klienci WHERE email LIKE '%gmail%';

% zastępuje dowolny ciąg znaków.

LIMIT bez ORDER BY
Tak nie
SELECT nazwa, cena FROM Produkty LIMIT 3;

Dostajesz trzy dowolne produkty, nie trzy najtańsze.

Tak
SELECT nazwa, cena FROM Produkty ORDER BY cena ASC LIMIT 3;

Najpierw sortuj, potem odcinaj.

Zła kolejność klauzul
Tak nie
SELECT nazwa FROM Produkty LIMIT 3 ORDER BY cena;

Błąd składni. LIMIT zawsze stoi na samym końcu.

Tak
SELECT nazwa FROM Produkty ORDER BY cena LIMIT 3;

Kolejność: SELECT, FROM, WHERE, ORDER BY, LIMIT.

ASC zamiast DESC
Tak nie
ORDER BY cena

Domyślne sortowanie jest rosnące, więc najtańsze karty są pierwsze, a miały być najdroższe.

Tak
ORDER BY cena DESC

Gdy ma być od największej wartości, dopisz DESC.

5 · Sprawdź sam siebie

Zanim oddasz pracę

Ta lista odpowiada temu, co sprawdza komisja egzaminacyjna: poprawną bazę, poprawne wyniki i dokumentację.

Podsumowanie

Co warto zapamiętać

  1. Filtruj WHERE, sortuj ORDER BY, odcinaj LIMIT i zawsze w tej kolejności.
  2. LIKE z % szuka fragmentu tekstu.
  3. BETWEEN obejmuje obie granice.
  4. Liczba wierszy to pierwsza kontrola poprawności zapytania.

Dalej na swoim koncie

Rozgrzewki, quiz i zadania są w biurku ucznia.

Teoria jest otwarta dla wszystkich. Żeby rozwiązywać zadania, zapisywać szkice i widzieć swój postęp, zaloguj się.

Zaloguj się →
Źródła i dalsza nauka