Zadanie 6 - Twoja pierwsza tabela

Wprowadzenie: Czym jest baza danych i tabela?

Analogia: Szafa z segregatorami

W tym zadaniu najpierw stworzymy naszą "szafę" (CREATE DATABASE), a następnie włożymy do niej pierwszy "segregator" (CREATE TABLE).

Cel zadania

Celem tego ćwiczenia jest praktyczne stworzenie Twojej pierwszej bazy danych i tabeli. Nauczysz się kluczowych poleceń języka SQL i zrozumiesz fundamentalne pojęcia, takie jak klucz podstawowy, atrybut AUTO_INCREMENT oraz typy danych. Celowo stworzymy tabelę, która nie jest idealna, aby w przyszłości nauczyć się ją poprawiać. Na koniec zaimportujemy do niej dane z pliku.

Krok 1: Tworzenie bazy danych "biblioteka"

Zaloguj się do serwera MariaDB za pomocą HeidiSQL. W oknie zapytań wpisz i wykonaj poniższe polecenia.


-- Tworzymy nową bazę danych (naszą "szafę")
CREATE DATABASE biblioteka CHARACTER SET utf8mb4 COLLATE utf8mb4_polish_ci;

-- Mówimy serwerowi, że od teraz chcemy pracować wewnątrz tej bazy
USE biblioteka;
  
Wyjaśnienie krok po kroku:

Krok 2: Tworzenie tabeli "czytelnicy_denormalized"

Teraz stworzymy nasz pierwszy "segregator". Nazwa _denormalized jest celowa – oznacza, że tabela jest zaprojektowana w sposób, który ułatwia import "brudnych" danych, ale nie jest optymalna. Będziemy ją poprawiać w kolejnych zadaniach.


CREATE TABLE czytelnicy_denormalized (
  id INT AUTO_INCREMENT PRIMARY KEY,
  dane_osobowe VARCHAR(255) NOT NULL,
  adres_zamieszkania TEXT NULL,
  zainteresowania VARCHAR(255) NULL,
  wypozyczenia TEXT NULL
);
  
Wyjaśnienie definicji kolumn:

Krok 3: Weryfikacja stworzonej tabeli

Skąd wiemy, że tabela została utworzona poprawnie? Możemy to sprawdzić dwoma poleceniami.


-- Pokaż listę wszystkich tabel w bieżącej bazie danych
SHOW TABLES;

-- Pokaż szczegółową strukturę naszej nowej tabeli
DESCRIBE czytelnicy_denormalized;
  

Drugie polecenie (DESCRIBE) jest niezwykle przydatne. Jego wynik pokaże nam listę kolumn, ich typy danych, informację, czy mogą być puste (NULL) oraz która z nich jest kluczem głównym (Key: PRI).

Krok 4: Import danych z pliku .sql

Ręczne dodawanie 50 czytelników byłoby bardzo żmudne. Dlatego przygotowaliśmy plik .sql, który zawiera serię poleceń INSERT. Zaimportujemy go za pomocą wiersza poleceń.

Instrukcja importu krok po kroku:
  1. Przygotuj plik: Skopiuj treść polecenia INSERT INTO... z pliku źródłowego do nowego pliku tekstowego. Zapisz go na Pulpicie pod nazwą import_czytelnikow.sql.
  2. Otwórz terminal: W panelu XAMPP kliknij przycisk "Shell".
  3. Wpisz polecenie importu: Użyj poniższej komendy, pamiętając o zmianie "TwojaNazwaUzytkownika" na Twoją faktyczną nazwę użytkownika w systemie Windows.
  4. mysql -u root -p biblioteka < C:\Users\TwojaNazwaUzytkownika\Desktop\import_czytelnikow.sql
          
  5. Podaj hasło: System poprosi o hasło dla użytkownika root. Wpisz je i naciśnij Enter. Jeśli nie pojawią się żadne błędy, dane zostały zaimportowane.
Wyjaśnienie polecenia importu:

Krok 5: Weryfikacja i wnioski

Na koniec sprawdźmy, czy dane faktycznie znajdują się w tabeli.


-- Wybierz wszystkie kolumny (*) z naszej tabeli, ale pokaż tylko 5 pierwszych wierszy
SELECT * FROM czytelnicy_denormalized LIMIT 5;
  

W wyniku zobaczysz tabelę wypełnioną danymi. Zwróć uwagę, jak niepraktyczna jest taka struktura. Jeśli chcielibyśmy znaleźć wszystkich czytelników zainteresowanych "Fantastyką", musielibyśmy przeszukiwać tekst w kolumnie zainteresowania. To wolne i nieefektywne.

Wnioski i co dalej?

Gratulacje! Stworzyłeś swoją pierwszą bazę danych, tabelę i zaimportowałeś do niej dane. Nauczyłeś się kluczowych poleceń DDL (CREATE) i DML (INSERT, SELECT).

Zauważyłeś też, że nasza tabela jest źle zaprojektowana. Przechowywanie wielu informacji w jednym polu (np. imię i email w dane_osobowe) to tzw. naruszenie Pierwszej Postaci Normalnej (1NF). W kolejnych zadaniach nauczymy się, jak to naprawić, dzieląc tę dużą tabelę na kilka mniejszych, logicznie powiązanych tabel. Ten proces nazywa się normalizacją.