Po tej lekcji potrafisz
Rozpoznać tabelę, wiersz i klucz oraz uruchomić wspólny zestaw danych.
SQL to język pracy z relacyjnymi bazami danych. Tabela przypomina uporządkowany arkusz: kolumny mają określone znaczenie i typ, a każdy wiersz opisuje obiekt. Klucz główny jednoznacznie rozpoznaje wiersz. Klucz obcy łączy go z wierszem innej tabeli. W kursie używamy MariaDB/MySQL i fikcyjnej biblioteki: kategorii, książek oraz wypożyczeń.
Na swoim lokalnym serwerze utwórz w phpMyAdmin nową, pustą bazę kurs_sql_biblioteka z kodowaniem utf8mb4. Wybierz tę bazę w lewym panelu, otwórz zakładkę SQL i wykonaj poniższy zestaw raz. Nie używaj bazy platformy. Wszystkie osoby w danych są fikcyjne. Kolejność tworzenia tabel jest ważna: najpierw powstaje tabela wskazywana przez klucz obcy.
CREATE TABLE kategorie (
id INT PRIMARY KEY,
nazwa VARCHAR(60) NOT NULL UNIQUE
) ENGINE=InnoDB;
CREATE TABLE ksiazki (
id INT PRIMARY KEY,
tytul VARCHAR(120) NOT NULL,
kategoria_id INT NOT NULL,
cena DECIMAL(8,2) NOT NULL,
rok INT NOT NULL,
opis VARCHAR(255) NULL,
FOREIGN KEY (kategoria_id) REFERENCES kategorie(id)
) ENGINE=InnoDB;
CREATE TABLE wypozyczenia (
id INT PRIMARY KEY,
ksiazka_id INT NOT NULL,
czytelnik VARCHAR(60) NOT NULL,
data_wypozyczenia DATE NOT NULL,
data_zwrotu DATE NULL,
FOREIGN KEY (ksiazka_id) REFERENCES ksiazki(id)
) ENGINE=InnoDB;
INSERT INTO kategorie VALUES
(1,'Web'), (2,'Bazy danych'), (3,'Sieci'), (4,'Robotyka');
INSERT INTO ksiazki VALUES
(1,'HTML na start',1,39.90,2023,NULL),
(2,'CSS w praktyce',1,59.00,2024,'Układy stron'),
(3,'SQL od zera',2,49.00,2024,NULL),
(4,'Sieci krok po kroku',3,69.00,2022,'Adresacja IP'),
(5,'JavaScript w projektach',1,79.00,2025,'DOM i API'),
(6,'Modelowanie danych',2,59.00,2025,NULL);
INSERT INTO wypozyczenia VALUES
(1,1,'Czytelnik A','2026-01-10','2026-01-17'),
(2,1,'Czytelnik B','2026-02-01',NULL),
(3,3,'Czytelnik A','2026-02-02',NULL),
(4,5,'Czytelnik C','2026-02-03','2026-02-10');Do czasu lekcji o modyfikacjach nie zmieniaj tych danych — oczekiwane wyniki ćwiczeń odwołują się do tego samego zestawu. Jeśli wykonasz import ponownie, baza zgłosi istniejące tabele; nie usuwaj ich automatycznie, tylko użyj nowej pustej bazy ćwiczeniowej.
Teraz Twoja kolej
Sprawdź, czy utworzono trzy tabele. Otwórz podgląd ksiazki i wskaż klucz główny oraz połączenie z kategorią.
Sprawdź rozwiązanie i oczekiwany efekt
Powinny istnieć 4 kategorie, 6 książek i 4 wypożyczenia. Ksiazki.id identyfikuje książkę, a ksiazki.kategoria_id wskazuje kategorie.id. Kategoria Robotyka celowo nie ma książek — przyda się później.
Na co uważać
Przed uruchomieniem SQL sprawdzaj wybraną bazę. Zestaw inicjalizacyjny służy tylko pustemu środowisku ćwiczeniowemu.
Zanim przejdziesz dalej: wykonaj ćwiczenie samodzielnie i dopiero wtedy oznacz lekcję jako ukończoną. Oznaczenie zapisuje Twój postęp, nie jest oceną nauczyciela.