INF.03 · Bazy danych i SQL
Wypożyczalnia filmów, część 2: zapytania SELECT
Baza z poprzedniego zadania jest gotowa, więc czas jej użyć. To ćwiczenie utrwala SELECT na nowym, nieznanym wcześniej zestawie tabel. Zwróć uwagę na pułapkę, która pojawia się przy NULL.
- około 35 minut
- SELECT · LIKE · IS NULL · ORDER BY · LIMIT
- baza: wypozyczalnia_filmow
Po tej lekcji: napiszesz zapytania z filtrem, wzorcem tekstu, sortowaniem i IS NULL na bazie, której wcześniej nie widziałeś.
1 · Sytuacja
Pytania klientów wypożyczalni
Pracujesz na bazie wypozyczalnia_filmow zaimportowanej w zadaniu 6. Zanim napiszesz zapytanie z NULL, przypomnij sobie różnicę między = NULL a IS NULL. Każde zapytanie buduj od najprostszego SELECT ... FROM ... i dopisuj warunki po jednym.
Jeśli liczba wierszy wygląda nierealistycznie (0 albo wszystkie), to sygnał błędu w warunku.
Tabela Filmy (12 rekordów)
| id_filmu | tytul | rok_produkcji | id_gatunku | cena_wypozyczenia |
|---|---|---|---|---|
| 1 | Kod nieśmiertelności | 2023 | 4 | 9.99 |
| 2 | Śmiech przez łzy | 2021 | 2 | 6.99 |
| 3 | Ostatnia misja | 2022 | 1 | 8.99 |
| 4 | Cichy ocean | 2020 | 3 | 7.49 |
| 5 | Galaktyczny patrol | 2024 | 4 | 10.99 |
| 6 | Rodzinne wakacje | 2019 | 2 | 5.99 |
| 7 | Za horyzontem | 2022 | 3 | 7.99 |
| 8 | Bohaterowie ulicy | 2023 | 1 | 9.49 |
| 9 | Kraina zabawek | 2021 | 5 | 6.49 |
| 10 | Podniebny pościg | 2024 | 1 | 10.49 |
| 11 | Miasto cieni | 2020 | 3 | 7.99 |
| 12 | Kosmiczna wyprawa | 2018 | 4 | 5.49 |
2 · Do wykonania
Zadania do wykonania
-
Pokaż wszystkie filmy z gatunku Sci-Fi (gatunek 4): tytuł i rok.Oczekiwany wynik3 wiersze
-
Pokaż filmy wyprodukowane po roku 2021, od najnowszego (przy tym samym roku po tytule alfabetycznie).Oczekiwany wynik6 wierszypierwszy wiersz: Galaktyczny patrol · 2024
-
Znajdź filmy, których tytuł zawiera „kosmicz” (pierwsze zapytanie
LIKE).Oczekiwany wynik1 wiersz -
Znajdź filmy, których tytuł zawiera „Galaktycz” (drugie zapytanie
LIKE).Oczekiwany wynik1 wiersz -
Pokaż 3 najtańsze filmy do wypożyczenia (tytuł i cena).Oczekiwany wynik3 wierszepierwszy wiersz: Kosmiczna wyprawa · 5.49
-
Pokaż wypożyczenia, które nie zostały jeszcze zwrócone (
data_zwrotu IS NULL).To oczekiwany wynik, a nie błąd.Oczekiwany wynik4 wiersze -
Pokaż klientów, których e-mail jest w domenie onet.pl.Oczekiwany wynik2 wiersze
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.
4 · Zanim się pomylisz
Trzy pomyłki w zapytaniach
Rozwiń każdą z nich.
= NULL zamiast IS NULL
SELECT * FROM Wypozyczenia WHERE data_zwrotu = NULL;Zero wierszy, choć są cztery niezwrócone wypożyczenia. Porównanie z NULL przez = nigdy nie jest prawdziwe.
SELECT * FROM Wypozyczenia WHERE data_zwrotu IS NULL;Brak wartości sprawdzasz przez IS NULL.
Polskie znaki i wielkość liter w LIKE
WHERE tytul LIKE 'Kosmiczna';Zero wierszy. Bez % LIKE szuka pełnego tytułu, a tytuł to „Kosmiczna wyprawa”.
WHERE tytul LIKE '%kosmicz%';Fragment tekstu zawsze z % z obu stron.
Sortowanie w złą stronę
ORDER BY rok_produkcjiNajstarsze filmy są pierwsze, a polecenie prosiło o najnowsze.
ORDER BY rok_produkcji DESC„Od najnowszego” to sortowanie malejące.
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ć
IS NULLdo braku wartości, nigdy= NULL.LIKEz%szuka fragmentu tekstu.ORDER BY ... DESCdaje największe wartości jako pierwsze.- Liczba wierszy to pierwsza kontrola.
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ę →