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.
-
Pokaż wszystkie kolumny ze wszystkich filmów.Oczekiwany wynik12 wierszy
-
Pokaż tylko tytuł i cenę wypożyczenia wszystkich filmów.Oczekiwany wynik12 wierszy
-
Pokaż filmy z gatunku o
id_gatunku = 4.Oczekiwany wynik3 wiersze -
Pokaż filmy tańsze niż 8 zł.Oczekiwany wynik7 wierszy
-
Pokaż filmy z lat 2022–2024 (
BETWEEN).Oczekiwany wynik6 wierszy -
Pokaż klientów, których imię zaczyna się na A lub B.Oczekiwany wynik2 wiersze
-
Pokaż filmy posortowane alfabetycznie po tytule.Oczekiwany wynik12 wierszy
-
Pokaż 5 najdroższych filmów.Oczekiwany wynik5 wierszy
-
Pokaż filmy, których tytuł kończy się na literę „a”.Oczekiwany wynik2 wiersze
-
Pokaż klientów z adresem e-mail w domenie gmail.com.Oczekiwany wynik4 wiersze
-
Pokaż wypożyczenia z lutego 2026 roku.Oczekiwany wynik15 wierszy
-
Pokaż filmy, które NIE należą do gatunku „Komedia” (
id_gatunku2).Oczekiwany wynik10 wierszy -
Pokaż wypożyczenia, które zostały już zwrócone.Oczekiwany wynik11 wierszy
-
Pokaż filmy z ceną dokładnie 7.99 zł.Oczekiwany wynik2 wiersze
-
Policz, ile filmów jest w bazie łącznie.Oczekiwany wynik1 wiersz
-
Policz, ile filmów jest w każdym gatunku.Oczekiwany wynik5 wierszy
-
Znajdź średnią cenę wypożyczenia wszystkich filmów (do dwóch miejsc).Oczekiwany wynik1 wiersz
-
Znajdź najstarszy i najnowszy rok produkcji filmu.Oczekiwany wynik1 wiersz
-
Policz, ilu klientów jest zarejestrowanych.Oczekiwany wynik1 wiersz
-
Pokaż gatunki, w których są co najmniej 3 filmy (id gatunku i liczba).Oczekiwany wynik3 wiersze
-
Pokaż każde wypożyczenie z imieniem klienta i tytułem filmu.Oczekiwany wynik15 wierszy
-
Pokaż filmy razem z nazwą gatunku, posortowane po nazwie gatunku.Oczekiwany wynik12 wierszy
-
Pokaż klientów, którzy jeszcze nigdy nic nie wypożyczyli (
LEFT JOIN).Oczekiwany wynik0 wierszy -
Pokaż łączną kwotę wypożyczeń każdego klienta (suma cen wypożyczonych filmów).Oczekiwany wynik8 wierszy
-
Pokaż filmy wypożyczone co najmniej dwa razy (tytuł i liczba).Oczekiwany wynik3 wiersze
-
Dodaj nowy film: tytuł „Nowy film”, rok 2025, gatunek 2, cena 7.99.Oczekiwany wynikzmienionych wierszy: 1
-
Zmień cenę wypożyczenia filmu o numerze 6 na 6.49.Oczekiwany wynikzmienionych wierszy: 1
-
Dodaj do tabeli Filmy kolumnę
ocena(liczba od 1 do 10, może być pusta). SprawdźDESCRIBE Filmy;.Oczekiwany wynik6 kolumn w DESCRIBE -
Usuń wypożyczenie o numerze 15 (najpierw
SELECT, który je pokaże).Oczekiwany wynikzmienionych wierszy: 1 -
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.
4 · Zanim się pomylisz
Pięć pułapek z tego zestawu
Rozwiń każdą z nich.
= NULL zamiast IS NOT NULL
WHERE data_zwrotu <> NULLZawsze pusty wynik. Porównania z NULL przez = i <> nigdy nie są prawdziwe.
WHERE data_zwrotu IS NOT NULLDo brakujących wartości służą IS NULL i IS NOT NULL.
LIKE bez %
WHERE tytul LIKE 'a'Zero wierszy, bo szuka tytułu równego „a”.
WHERE tytul LIKE '%a'Znak % zastępuje początek tekstu.
Tożsamość gatunku z wieloma remisami
„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.
Użyj `HAVING COUNT(*) >= 3` i pokaż wszystkie remisujące gatunki.Sprawdzaj, czy pytanie ma jednoznaczną odpowiedź.
DELETE bez SELECT
DELETE FROM Wypozyczenia WHERE id_wypozyczenia = 15;Usuwasz rekord, którego nie obejrzałeś.
SELECT * FROM Wypozyczenia WHERE id_wypozyczenia = 15;
DELETE ...Zawsze najpierw SELECT.
Zła granica BETWEEN
WHERE rok_produkcji BETWEEN 2022 AND 2024Obejmuje 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.
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ć
- Zestaw 30 zapytań obejmuje całą ścieżkę: SELECT, filtry, agregacje, JOIN i zmiany danych.
- Pytaj, czy zapytanie ma jednoznaczną odpowiedź (remisy!).
- Zmiany danych wykonuj na końcu albo na świeżym imporcie.
- 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ę →