Po tej lekcji potrafisz
Samodzielnie dobrać zapytanie do wymagania i sprawdzić poprawność odpowiedzi.
Zapisz wyniki pracy w pliku raporty.sql. Każde zapytanie poprzedź komentarzem opisującym pytanie. Używaj niezmienionego zestawu z pierwszej lekcji. Nie wystarczy, że serwer nie zgłasza błędu składni — wynik musi odpowiadać wymaganiu.
Zadania końcowe
- Trzy najnowsze książki; remisy rozstrzygaj po id rosnąco.
- Liczba książek i średnia cena w każdej niepustej kategorii.
- Kategorie bez książek.
- Aktywne wypożyczenia z tytułem książki.
- Książki, których nikt dotąd nie wypożyczył.
Dla każdego raportu zanotuj oczekiwaną liczbę wierszy i uzasadnienie. Przetestuj granice: kategoria bez książek oraz książka z kilkoma wypożyczeniami. Nie dodawaj do tych odczytowych raportów modyfikacji danych.
Teraz Twoja kolej
Napisz pięć zapytań bez kopiowania rozwiązań poprzednich lekcji. Dopiero później porównaj wyniki. Zachowaj plik wraz z krótkim README opisującym używany zestaw danych.
Sprawdź rozwiązanie i oczekiwany efekt
-- 1. Najnowsze: id 5, 6, 2
SELECT id, tytul FROM ksiazki ORDER BY rok DESC, id ASC LIMIT 3;
-- 2. Niepuste kategorie: 1/3/59.30, 2/2/54.00, 3/1/69.00
SELECT k.id, k.nazwa, COUNT(b.id) AS liczba, ROUND(AVG(b.cena),2) AS srednia
FROM kategorie k JOIN ksiazki b ON b.kategoria_id=k.id
GROUP BY k.id, k.nazwa ORDER BY k.id;
-- 3. Robotyka
SELECT k.nazwa FROM kategorie k LEFT JOIN ksiazki b ON b.kategoria_id=k.id WHERE b.id IS NULL;
-- 4. Wypożyczenia id 2 i 3
SELECT w.id, w.czytelnik, b.tytul FROM wypozyczenia w
JOIN ksiazki b ON b.id=w.ksiazka_id WHERE w.data_zwrotu IS NULL ORDER BY w.id;
-- 5. Książki id 2, 4, 6
SELECT b.id, b.tytul FROM ksiazki b LEFT JOIN wypozyczenia w ON w.ksiazka_id=b.id
WHERE w.id IS NULL ORDER BY b.id;Kurs jest ukończony, gdy umiesz wyjaśnić warunki połączeń, wybór COUNT oraz różnicę między WHERE i HAVING. Możesz oznaczyć lekcje jako ukończone. Ocena nauczyciela pojawia się dopiero przy zadaniu oddanym i sprawdzonym w panelu zadań.
Na co uważać
Poprawny wynik otrzymany przypadkiem nie wystarcza. Zapytanie musi działać również po dodaniu kolejnej książki bez wypożyczeń.
Zanim przejdziesz dalej: wykonaj ćwiczenie samodzielnie i dopiero wtedy oznacz lekcję jako ukończoną. Oznaczenie zapisuje Twój postęp, nie jest oceną nauczyciela.