INF.03 · Bazy danych i SQL

INF.03, zadanie SQL 3: serwis telefonów

Pełne zadanie praktyczne na poziomie trudnym. Serwis telefonów łączy raporty, NULL, agregację, podzapytanie i kontrolowaną aktualizację danych. Koszt i data zakończenia mogą być nieznane, dopóki naprawa nie zostanie ukończona, więc uważaj na wartości puste.

  • 45–60 minut
  • poziom trudny
  • baza: inf03_serwis

Po tej lekcji: wykonasz pełne zadanie egzaminacyjne samodzielnie: od importu, przez pięć kwerend, po dokumentację i kartę kontroli.

1 · Sytuacja

Warunki wykonania

Czas orientacyjny: 45–60 minut. Pracuj samodzielnie w XAMPP i phpMyAdmin. Pobierz plik bazy (zip) z sekcji „Pliki do pracy”, rozpakuj go i zaimportuj plik .sql. Nie zmieniaj danych źródłowych poza poleceniami, które tego wyraźnie wymagają.

W katalogu rozwiązania zapisz kwerendy.sql oraz zrzuty kwerenda1.png, kwerenda2.png itd. Baza zawiera klientów, ich urządzenia i naprawy. Nie zastępuj NULL zerem.

2 · Do wykonania

Pięć poleceń egzaminacyjnych

Pracuj samodzielnie. Przy każdym poleceniu podano oczekiwany wynik, żebyś mógł sprawdzić się bez zaglądania do rozwiązania.

  1. Wyświetl numer naprawy, klienta, markę, model, opis i status wszystkich napraw. Posortuj od najnowszej daty przyjęcia (przy tej samej dacie od największego numeru naprawy).
    Oczekiwany wynik8 wierszypierwszy wiersz: 8 · Marek Nowak
  2. Wyświetl niezakończone naprawy, czyli rekordy bez daty zakończenia. Pokaż klienta, urządzenie i status.
    Oczekiwany wynik4 wiersze
  3. Dla każdej marki pokaż liczbę napraw i średni znany koszt, zaokrąglony do dwóch miejsc. NULL nie zastępuj zerem.
    Oczekiwany wynik4 wiersze
  4. Za pomocą podzapytania wyświetl klientów, którzy mają więcej niż jedną naprawę. Nie wpisuj identyfikatorów ręcznie.
    Oczekiwany wynik2 wiersze
  5. Zakończ naprawę o numerze 3: ustaw koszt 240, status „zakonczona” i datę zakończenia 2026-09-23. Najpierw SELECT kontrolny.
    Oczekiwany wynikzmienionych wierszy: 1

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

Typowe błędy w tym zadaniu

Rozwiń każdą z nich.

= NULL zamiast IS NULL
Tak nie
WHERE data_zakonczenia = NULL

Zero wierszy, choć są cztery niezakończone naprawy.

Tak
WHERE data_zakonczenia IS NULL

Brak wartości sprawdzasz przez IS NULL.

Zastępowanie NULL zerem w średniej
Tak nie
AVG(COALESCE(n.koszt, 0))

Naprawy bez znanego kosztu zaniżają średnią, bo liczą się jako 0 zł. Polecenie zabrania takiej zamiany.

Tak
AVG(n.koszt)

AVG sam pomija NULL, więc liczy tylko znane koszty.

UPDATE jednego pola zamiast trzech
Tak nie
UPDATE Naprawy SET status = 'zakonczona' WHERE id_naprawy = 3;

Naprawa jest „zakończona”, ale nadal bez kosztu i daty. Polecenie wymaga zmiany trzech kolumn naraz.

Tak
UPDATE Naprawy SET koszt = 240, status = 'zakonczona', data_zakonczenia = '2026-09-23' WHERE id_naprawy = 3;

Zmieniaj dokładnie to, co wymaga polecenie.

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. Pracuj według procedury: import, struktura, zapytania etapami, kontrola, zapis i ponowne otwarcie.
  2. Przed UPDATE zawsze SELECT z tym samym warunkiem.
  3. Dokumentuj pracę: pliki, zrzuty, liczby rekordów.
  4. Karta kontroli to ostatni krok przed oddaniem.

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