Dataczwartek, 13 sierpnia 2026 Czas18:23:13
← Zadania praktyczne

Zadanie 6: Wypożyczalnia filmów — import gotowej bazy do XAMPP

Podstawowy

Po co się tego uczymy?

Na egzaminie zwykle NIE budujesz bazy od zera — dostajesz gotowy plik do zaimportowania i pracujesz na nim. To zadanie ćwiczy dokładnie tę umiejętność, zanim przejdziesz do trudniejszych zadań egzaminacyjnych.

Treść zadania

Scenariusz: Dostałeś od klienta gotowy projekt bazy danych wypożyczalni filmów jako plik .sql — dokładnie tak wygląda praca na prawdziwym egzaminie, gdzie dostajesz plik do zaimportowania, a nie kod do przepisania.

Do wykonania:
1. Pobierz plik wypozyczalnia_filmow.sql przyciskiem na dole tej strony.
2. Uruchom Apache i MySQL w XAMPP Control Panel.
3. W phpMyAdmin utwórz pustą bazę danych o nazwie wypozyczalnia_filmow.
4. Wejdź w tę bazę i przejdź do zakładki "Importuj" (nie "SQL"!).
5. Kliknij "Wybierz plik", wskaż pobrany plik .sql i kliknij "Wykonaj" na dole strony.
6. Zrób zrzut ekranu potwierdzający poprawny import.

Jak zabrać się do zadania

1. Pobierz plik .sql przyciskiem na dole strony — NIE kopiuj kodu z bloku poniżej, to tylko podgląd zawartości pliku.
2. Uruchom usługi Apache i MySQL w XAMPP Control Panel — oba pola powinny zrobić się zielone.
3. Wejdź na http://localhost/phpmyadmin i kliknij "Nowa", żeby utworzyć pustą bazę wypozyczalnia_filmow.
4. Kliknij w nazwę tej bazy w lewym panelu, żeby ją "wybrać" jako aktywną.
5. Przejdź do zakładki "Importuj" (górne menu, nie "SQL").
6. Kliknij "Wybierz plik", znajdź pobrany plik .sql na dysku i kliknij "Wykonaj" na dole strony.

Jak powinien wyglądać efekt

Po kliknięciu "Wykonaj" w zakładce Importuj zobaczysz komunikat podobny do:

Import został pomyślnie zakończony, wykonano 23 zapytania.

a w lewym panelu, pod nazwą bazy wypozyczalnia_filmow, listę czterech tabel:

+--------------------------------+
| Tables_in_wypozyczalnia_filmow  |
+--------------------------------+
| Filmy                           |
| Gatunki                         |
| Klienci                         |
| Wypozyczenia                    |
+--------------------------------+

Jeśli zamiast tego zobaczysz czerwony komunikat błędu albo brakuje którejś tabeli, import się nie powiódł — sprawdź typowe problemy poniżej.

Typowe problemy i jak sobie z nimi poradzić

Import w złej zakładce. Co się stało: wkleiłeś zawartość pliku do zakładki "SQL" zamiast użyć "Importuj". Dlaczego: to dwie różne ścieżki w phpMyAdmin — "Importuj" obsługuje pliki, "SQL" obsługuje wklejony tekst. Jak naprawić: przejdź do zakładki "Importuj", tam dopiero użyj przycisku "Wybierz plik".

Import bez wcześniejszego utworzenia/wybrania bazy. Co się stało: dane zaimportowały się do złej bazy (np. do "test" albo do żadnej). Dlaczego: import w phpMyAdmin działa na AKTUALNIE wybranej bazie z lewego panelu. Jak naprawić: kliknij najpierw w nazwę bazy wypozyczalnia_filmow w lewym panelu, dopiero potem przejdź do "Importuj".

Brakuje części tabel po imporcie. Co się stało: widzisz np. tylko 2 z 4 tabel. Dlaczego: import się nie dokończył — być może przekroczony limit rozmiaru pliku albo przerwane połączenie. Jak naprawić: sprawdź komunikat na górze strony po imporcie, usuń niekompletną bazę (DROP DATABASE) i spróbuj ponownie od nowej, pustej bazy.

Nawiązanie do egzaminu zawodowego

To dokładnie odwzorowuje pierwszy krok części praktycznej prawdziwego egzaminu INF.03 — w przykładowym zadaniu z informatora CKE zdający importuje tabele cennik, miejscowość i rodzaj z gotowego pliku .sql dokładnie w ten sposób.

Kryteria sukcesu — sprawdź, czy wykonałeś zadanie poprawnie

Po wykonaniu zadania sprawdź, czy:
1. w lewym panelu phpMyAdmin widzisz bazę wypozyczalnia_filmow,
2. baza zawiera dokładnie 4 tabele: Gatunki, Filmy, Klienci, Wypozyczenia,
3. tabela Filmy ma 12 wierszy, Gatunki 5, Klienci 8, Wypozyczenia 15,
4. phpMyAdmin pokazał zielony komunikat "Import został pomyślnie zakończony",
5. masz zapisany zrzut ekranu jako dowód poprawnego importu.

Rozwiązanie — gotowa baza danych

Pobierz plik i zaimportuj go w phpMyAdmin przez zakładkę „Importuj” — dokładnie tak, jak wygląda to na prawdziwym egzaminie. Blok kodu poniżej to podgląd zawartości tego samego pliku, przydatny do sprawdzenia struktury bez otwierania go osobno.

Pobierz plik .sql

CREATE DATABASE IF NOT EXISTS wypozyczalnia_filmow;
USE wypozyczalnia_filmow;

CREATE TABLE Gatunki (
    id_gatunku INT AUTO_INCREMENT PRIMARY KEY,
    nazwa VARCHAR(50) NOT NULL
);

CREATE TABLE Filmy (
    id_filmu INT AUTO_INCREMENT PRIMARY KEY,
    tytul VARCHAR(150) NOT NULL,
    rok_produkcji INT NOT NULL,
    id_gatunku INT NOT NULL,
    cena_wypozyczenia DECIMAL(5,2) NOT NULL,
    FOREIGN KEY (id_gatunku) REFERENCES Gatunki(id_gatunku)
);

CREATE TABLE Klienci (
    id_klienta INT AUTO_INCREMENT PRIMARY KEY,
    imie VARCHAR(50) NOT NULL,
    nazwisko VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE
);

CREATE TABLE Wypozyczenia (
    id_wypozyczenia INT AUTO_INCREMENT PRIMARY KEY,
    id_klienta INT NOT NULL,
    id_filmu INT NOT NULL,
    data_wypozyczenia DATE NOT NULL,
    data_zwrotu DATE,
    FOREIGN KEY (id_klienta) REFERENCES Klienci(id_klienta),
    FOREIGN KEY (id_filmu) REFERENCES Filmy(id_filmu)
);

INSERT INTO Gatunki (nazwa) VALUES
('Akcja'), ('Komedia'), ('Dramat'), ('Sci-Fi'), ('Animacja');

INSERT INTO Filmy (tytul, rok_produkcji, id_gatunku, cena_wypozyczenia) VALUES
('Kod nieśmiertelności', 2023, 4, 9.99),
('Śmiech przez łzy', 2021, 2, 6.99),
('Ostatnia misja', 2022, 1, 8.99),
('Cichy ocean', 2020, 3, 7.49),
('Galaktyczny patrol', 2024, 4, 10.99),
('Rodzinne wakacje', 2019, 2, 5.99),
('Za horyzontem', 2022, 3, 7.99),
('Bohaterowie ulicy', 2023, 1, 9.49),
('Kraina zabawek', 2021, 5, 6.49),
('Podniebny pościg', 2024, 1, 10.49),
('Miasto cieni', 2020, 3, 7.99),
('Kosmiczna wyprawa', 2018, 4, 5.49);

INSERT INTO Klienci (imie, nazwisko, email) VALUES
('Aleksandra', 'Krawczyk', 'a.krawczyk@gmail.com'),
('Bartosz', 'Piotrowski', 'b.piotrowski@wp.pl'),
('Celina', 'Grabowska', 'c.grabowska@gmail.com'),
('Damian', 'Pawlak', 'd.pawlak@onet.pl'),
('Elżbieta', 'Michalska', 'e.michalska@gmail.com'),
('Filip', 'Nowicki', 'f.nowicki@wp.pl'),
('Gabriela', 'Adamczyk', 'g.adamczyk@gmail.com'),
('Hubert', 'Dudek', 'h.dudek@onet.pl');

INSERT INTO Wypozyczenia (id_klienta, id_filmu, data_wypozyczenia, data_zwrotu) VALUES
(1, 1, '2026-02-01', '2026-02-04'),
(1, 5, '2026-02-10', NULL),
(2, 2, '2026-02-02', '2026-02-05'),
(3, 3, '2026-02-03', '2026-02-06'),
(3, 8, '2026-02-15', NULL),
(4, 4, '2026-02-04', '2026-02-07'),
(5, 6, '2026-02-05', '2026-02-08'),
(6, 7, '2026-02-06', '2026-02-09'),
(7, 9, '2026-02-07', '2026-02-10'),
(8, 10, '2026-02-08', NULL),
(2, 11, '2026-02-09', '2026-02-12'),
(5, 12, '2026-02-11', '2026-02-14'),
(1, 3, '2026-02-12', '2026-02-15'),
(4, 8, '2026-02-13', NULL),
(6, 1, '2026-02-14', '2026-02-17');