INF.03 · Bazy danych i SQL

Wypożyczalnia filmów, część 5: trzydzieści zapytań kontrolnych

To sprawdzian utrwalający: trzydzieści krótkich poleceń z wszystkiego, czego uczyłeś się w zadaniach 1–9. Nie ma tu jednego efektu końcowego do zweryfikowania. Wykonaj je samodzielnie, bez zaglądania do wcześniejszych lekcji, a liczby wierszy przy zadaniach pokażą Ci, czy idziesz w dobrą stronę.

  • około 90 minut
  • 30 poleceń
  • bank do samodzielnej kontroli

Po tej lekcji: sprawdzisz, czy bez podpowiedzi potrafisz napisać SELECT, JOIN, agregację, podzapytanie i bezpiecznie zmienić dane.

1 · Sytuacja

Jak pracować z tym zestawem

Pracujesz na bazie wypozyczalnia_filmow w stanie początkowym (po świeżym imporcie). Nie musisz robić wszystkiego w jednym posiedzeniu: potraktuj zestaw jako bank ćwiczeń. Polecenia są pogrupowane: podstawowe SELECT (1–8), filtry i wzorce (9–14), funkcje agregujące (15–20), złączenia (21–25) oraz zmiany danych i struktury (26–30).

Uwaga: przy zmianach danych (26–29) wykonuj polecenia po kolei i pamiętaj, że po nich liczby w kolejnych zadaniach mogą się zmienić. Najbezpieczniej wykonać zadania 1–25 i 30 najpierw, a 26–29 na końcu albo po ponownym zaimportowaniu bazy.

2 · Do wykonania

Trzydzieści poleceń

Przy każdym zapytaniu wybierającym podano oczekiwaną liczbę wierszy, a przy zmianach liczbę zmienionych wierszy.

  1. Pokaż wszystkie kolumny ze wszystkich filmów.
    Oczekiwany wynik12 wierszy
  2. Pokaż tylko tytuł i cenę wypożyczenia wszystkich filmów.
    Oczekiwany wynik12 wierszy
  3. Pokaż filmy z gatunku o id_gatunku = 4.
    Oczekiwany wynik3 wiersze
  4. Pokaż filmy tańsze niż 8 zł.
    Oczekiwany wynik7 wierszy
  5. Pokaż filmy z lat 2022–2024 (BETWEEN).
    Oczekiwany wynik6 wierszy
  6. Pokaż klientów, których imię zaczyna się na A lub B.
    Oczekiwany wynik2 wiersze
  7. Pokaż filmy posortowane alfabetycznie po tytule.
    Oczekiwany wynik12 wierszy
  8. Pokaż 5 najdroższych filmów.
    Oczekiwany wynik5 wierszy
  9. Pokaż filmy, których tytuł kończy się na literę „a”.
    Oczekiwany wynik2 wiersze
  10. Pokaż klientów z adresem e-mail w domenie gmail.com.
    Oczekiwany wynik4 wiersze
  11. Pokaż wypożyczenia z lutego 2026 roku.
    Oczekiwany wynik15 wierszy
  12. Pokaż filmy, które NIE należą do gatunku „Komedia” (id_gatunku 2).
    Oczekiwany wynik10 wierszy
  13. Pokaż wypożyczenia, które zostały już zwrócone.
    Oczekiwany wynik11 wierszy
  14. Pokaż filmy z ceną dokładnie 7.99 zł.
    Oczekiwany wynik2 wiersze
  15. Policz, ile filmów jest w bazie łącznie.
    Oczekiwany wynik1 wiersz
  16. Policz, ile filmów jest w każdym gatunku.
    Oczekiwany wynik5 wierszy
  17. Znajdź średnią cenę wypożyczenia wszystkich filmów (do dwóch miejsc).
    Oczekiwany wynik1 wiersz
  18. Znajdź najstarszy i najnowszy rok produkcji filmu.
    Oczekiwany wynik1 wiersz
  19. Policz, ilu klientów jest zarejestrowanych.
    Oczekiwany wynik1 wiersz
  20. Pokaż gatunki, w których są co najmniej 3 filmy (id gatunku i liczba).
    Oczekiwany wynik3 wiersze
  21. Pokaż każde wypożyczenie z imieniem klienta i tytułem filmu.
    Oczekiwany wynik15 wierszy
  22. Pokaż filmy razem z nazwą gatunku, posortowane po nazwie gatunku.
    Oczekiwany wynik12 wierszy
  23. Pokaż klientów, którzy jeszcze nigdy nic nie wypożyczyli (LEFT JOIN).
    Oczekiwany wynik0 wierszy
  24. Pokaż łączną kwotę wypożyczeń każdego klienta (suma cen wypożyczonych filmów).
    Oczekiwany wynik8 wierszy
  25. Pokaż filmy wypożyczone co najmniej dwa razy (tytuł i liczba).
    Oczekiwany wynik3 wiersze
  26. Dodaj nowy film: tytuł „Nowy film”, rok 2025, gatunek 2, cena 7.99.
    Oczekiwany wynikzmienionych wierszy: 1
  27. Zmień cenę wypożyczenia filmu o numerze 6 na 6.49.
    Oczekiwany wynikzmienionych wierszy: 1
  28. Dodaj do tabeli Filmy kolumnę ocena (liczba od 1 do 10, może być pusta). Sprawdź DESCRIBE Filmy;.
    Oczekiwany wynik6 kolumn w DESCRIBE
  29. Usuń wypożyczenie o numerze 15 (najpierw SELECT, który je pokaże).
    Oczekiwany wynikzmienionych wierszy: 1
  30. Znajdź podzapytaniem filmy wypożyczane częściej niż średnia liczba wypożyczeń na film.
    Oczekiwany wynik3 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.

Ta interakcja wymaga włączonego JavaScriptu.

4 · Zanim się pomylisz

Pięć pułapek z tego zestawu

Rozwiń każdą z nich.

= NULL zamiast IS NOT NULL
Tak nie
WHERE data_zwrotu <> NULL

Zawsze pusty wynik. Porównania z NULL przez = i <> nigdy nie są prawdziwe.

Tak
WHERE data_zwrotu IS NOT NULL

Do brakujących wartości służą IS NULL i IS NOT NULL.

LIKE bez %
Tak nie
WHERE tytul LIKE 'a'

Zero wierszy, bo szuka tytułu równego „a”.

Tak
WHERE tytul LIKE '%a'

Znak % zastępuje początek tekstu.

Tożsamość gatunku z wieloma remisami
Tak nie
„Gatunek z największą liczbą filmów” (LIMIT 1).

W tej bazie trzy gatunki mają po 3 filmy. LIMIT 1 wskaże jeden z nich przypadkowo.

Tak
Użyj `HAVING COUNT(*) >= 3` i pokaż wszystkie remisujące gatunki.

Sprawdzaj, czy pytanie ma jednoznaczną odpowiedź.

DELETE bez SELECT
Tak nie
DELETE FROM Wypozyczenia WHERE id_wypozyczenia = 15;

Usuwasz rekord, którego nie obejrzałeś.

Tak
SELECT * FROM Wypozyczenia WHERE id_wypozyczenia = 15;
DELETE ...

Zawsze najpierw SELECT.

Zła granica BETWEEN
Tak nie
WHERE rok_produkcji BETWEEN 2022 AND 2024

Obejmuje oba lata graniczne, więc jeśli polecenie mówi „po 2021 i przed 2025”, wynik jest ten sam, ale przy „od 2023” byłby inny.

Tak
Czytaj granice w poleceniu: „po” to `>`, „od” to `>=`.

BETWEEN jest domknięty.

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. Zestaw 30 zapytań obejmuje całą ścieżkę: SELECT, filtry, agregacje, JOIN i zmiany danych.
  2. Pytaj, czy zapytanie ma jednoznaczną odpowiedź (remisy!).
  3. Zmiany danych wykonuj na końcu albo na świeżym imporcie.
  4. Jeśli którykolwiek punkt sprawił trudność, wróć do właściwej lekcji.

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