INF.03 · Bazy danych i SQL

Klinika WetVet: złożone zestawienia i widok

Klinika weterynaryjna prowadzi rejestr pacjentów (zwierząt), ich właścicieli i wykonanych zabiegów. Zestawienia wymagają złączeń trzech i czterech tabel. Na końcu zapisujesz raport jako widok gotowy do wielokrotnego użycia.

  • około 45 minut
  • zadanie w stylu egzaminacyjnym
  • baza: klinika_wetvet

Po tej lekcji: wykonasz komplet zapytań w warunkach egzaminacyjnych i udokumentujesz każde zrzutem ekranu.

1 · Sytuacja

Scenariusz i przygotowanie

Zaimportuj bazę klinika_wetvet (Wlasciciele, Zwierzeta, Zabiegi, Wizyty).

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.

  1. Pokaż wszystkie wizyty razem z imieniem zwierzęcia, jego gatunkiem i nazwą zabiegu.
    Oczekiwany wynik10 wierszy
  2. Policz łączny koszt leczenia dla każdego zwierzęcia (imię i suma). Od największej kwoty.
    Oczekiwany wynik6 wierszypierwszy wiersz: Reksio · 500.00
  3. Znajdź właściciela, który wydał najwięcej na leczenie swoich zwierząt (cztery tabele, jeden wiersz).
    Oczekiwany wynik1 wierszpierwszy wiersz: Marta · Olejniczak · 650.00
  4. Pokaż zwierzęta, u których nigdy nie wykonano szczepienia (NOT IN z podzapytaniem po zabiegu „Szczepienie”).
    Oczekiwany wynik3 wiersze
  5. Pokaż gatunek zwierząt, na którym wydano łącznie najwięcej pieniędzy (jeden wiersz).
    Oczekiwany wynik1 wierszpierwszy wiersz: pies · 970.00
  6. Utwórz widok HistoriaLeczenia (imię zwierzęcia, nazwisko właściciela, nazwa zabiegu, data). Odczytaj go poleceniem SELECT * FROM HistoriaLeczenia;.
    Oczekiwany wynik10 wierszy po odczycie widoku

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

Trzy pułapki w tym zadaniu

Rozwiń każdą z nich.

Pominięta tabela w łańcuchu złączeń
Tak nie
FROM Wizyty w JOIN Zwierzeta z ... JOIN Zabiegi zb ...
-- bez tabeli Wlasciciele, a pytanie dotyczy właściciela

Nie ma jak pokazać nazwiska właściciela. Brakuje jednego złączenia.

Tak
... JOIN Wlasciciele o ON z.id_wlasciciela = o.id_wlasciciela

Rysuj łańcuch tabel od faktu (Wizyty) do wszystkich potrzebnych opisów.

Sumowanie po złej kolumnie grupującej
Tak nie
GROUP BY o.nazwisko

Dwie osoby o tym samym nazwisku zostaną zsumowane razem.

Tak
GROUP BY o.id_wlasciciela, o.imie, o.nazwisko

Grupuj po kluczu głównym i dodaj opisujące kolumny.

Widok jako zapis wyniku
Tak nie
„Widok HistoriaLeczenia przechowuje dane.”

Widok zapisuje zapytanie, a nie dane. Gdy dodasz wizytę, pojawi się w widoku automatycznie.

Tak
CREATE VIEW HistoriaLeczenia AS SELECT ...;

Widok jest zapisanym zapytaniem.

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. Czytaj polecenie jak opis wyniku: kolumny, tabele, warunek, kolejność.
  2. Złączenia buduj po jednym i kontroluj liczbę wierszy.
  3. Pusty wynik też może być poprawny, więc sprawdź go kontrolnym zapytaniem.
  4. 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ę →
Źródła i dalsza nauka