INF.03 · Bazy danych i SQL
Biuro podróży: filtrowanie i agregacje
Biuro podróży prowadzi rejestr wycieczek i rezerwacji klientów. Zadanie łączy wszystkie podstawowe umiejętności: złączenie z filtrem, sortowanie, sumy, grupowanie i szukanie braków. Zwróć uwagę, że jedno z zapytań ma poprawny pusty wynik.
- około 45 minut
- zadanie w stylu egzaminacyjnym
- baza: biuro_podrozy
Po tej lekcji: wykonasz komplet zapytań w warunkach egzaminacyjnych i udokumentujesz każde zrzutem ekranu.
1 · Sytuacja
Scenariusz i przygotowanie
Zaimportuj bazę biuro_podrozy (Kraje, Wycieczki, Klienci, Rezerwacje). Pobierzesz ją z sekcji „Pliki do pracy”.
2 · Do wykonania
Zapytania do wykonania
Dla każdego zapytania zrób zrzut ekranu. Oczekiwane liczby wierszy podano przy zadaniach, a pełne rozwiązania znajdziesz dopiero po wykonaniu pracy samodzielnie.
-
Pokaż wszystkie wycieczki do krajów europejskich (nazwa wycieczki i kraj).Oczekiwany wynik4 wiersze
-
Pokaż wycieczki trwające dłużej niż 7 dni, od najdroższej.Oczekiwany wynik3 wierszepierwszy wiersz: Bangkok i Phuket · 12 · 4500.00
-
Policz łączną liczbę osób zarezerwowanych na każdą wycieczkę (nazwa i suma).Oczekiwany wynik6 wierszy
-
Pokaż klientów, którzy zarezerwowali co najmniej dwie różne wycieczki (imię, nazwisko, liczba).Oczekiwany wynik3 wiersze
-
Oblicz łączny przychód biura ze wszystkich rezerwacji (cena wycieczki razy liczba osób).Oczekiwany wynik1 wierszpierwszy wiersz: 48800.00
-
Znajdź wycieczki, na które nikt się jeszcze nie zapisał (
LEFT JOIN).Zanim uznasz wynik za błąd, sprawdźSELECT DISTINCT id_wycieczki FROM Rezerwacje;.Oczekiwany wynik0 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.
4 · Zanim się pomylisz
Trzy pułapki w tym zadaniu
Rozwiń każdą z nich.
Przychód z samych cen
SELECT SUM(w.cena) ...Pomija liczbę osób: rezerwacja dla czterech osób liczy się jak dla jednej.
SELECT SUM(w.cena * r.liczba_osob) ...Przychód to cena razy liczba osób.
Pusty wynik uznany za błąd
„Każde biuro ma jakąś niesprzedaną wycieczkę.”W tej bazie wszystkie sześć wycieczek ma rezerwacje, więc LEFT JOIN zwraca 0 wierszy. To poprawna odpowiedź.
Kontrolnie: `SELECT DISTINCT id_wycieczki FROM Rezerwacje;` (6 wartości).Sprawdzaj dane, zanim zaczniesz szukać błędu w zapytaniu.
Kontynent w złej tabeli
WHERE w.kontynent = 'Europa'Błąd Unknown column. Kontynent jest w tabeli Kraje, a nie Wycieczki.
JOIN Kraje k ON ...
WHERE k.kontynent = 'Europa'Najpierw sprawdź strukturę (DESCRIBE).
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ć
- Czytaj polecenie jak opis wyniku: kolumny, tabele, warunek, kolejność.
- Złączenia buduj po jednym i kontroluj liczbę wierszy.
- Pusty wynik też może być poprawny, więc sprawdź go kontrolnym zapytaniem.
- Dokumentuj pracę zrzutami i zapisanym plikiem.
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ę →