Tworzenie struktury bazy danych
W tym odcinku zaczynamy kurs SQL na bazie ksiegarnia. Poznasz zarządzanie strukturą tabel – dodawanie, zmiana nazwy i usuwanie kolumn. To jeden z najczęstszych typów zadań na egzaminie INF.03.
Baza ćwiczeniowa: ksiegarnia
Wszystkie odcinki kursu korzystają z jednej bazy. Plik do importu: ksiegarnia.sql.
Schemat bazy danych
| Tabela | Opis i relacje |
|---|---|
autorzy |
Autorzy książek. Relacja 1:n z ksiazki (jeden autor – wiele książek). |
kategorie |
Kategorie literackie. Relacja 1:n z ksiazki. |
tagi |
Tagi/etykiety. Relacja n:m z ksiazki (przez tabelę ksiazka_tag). |
ksiazki |
Główna tabela. Klucze obce do autorzy i kategorie. Pole autor_id może być NULL. |
ksiazka_tag |
Tabela łącząca – relacja n:m między ksiazki a tagi. |
klienci |
Klienci księgarni. |
zamowienia |
Zamówienia klientów. Klucz obcy do klienci. |
pozycje_zamowienia |
Pozycje w zamówieniu. Klucze obce do zamowienia i ksiazki. |
Struktura tabel
Przykładowe dane
- Autorzy: Mickiewicz, Sienkiewicz, Tokarczuk, Lem, Szymborska, King, Rowling, Orwell, Sapkowski, Pratchett
- Kategorie: Powieść historyczna, Science Fiction, Poezja, Fantasy, Horror, Klasyka polska
- Tagi: bestseller, nagroda Nobla, ekranizacja, lektura szkolna, seria, klasyk
- Ceny książek: od 24,99 zł do 54,99 zł | Lata wydania: od 1823 do 1998
- Klienci z miast: Warszawa, Kraków, Gdańsk, Poznań, Wrocław
- Zamówienia o statusach:
'nowe','w trakcie','zrealizowane'(część bezdaty_realizacji= NULL)
Zadanie 1: ALTER TABLE – dodawanie kolumny (ADD COLUMN)
- Cel: Dodanie nowej kolumny do istniejącej tabeli – najczęstsze zadanie egzaminacyjne.
Wzorzec ogólny:
Przykłady:
| Typ | Zastosowanie |
|---|---|
INT |
Liczba całkowita |
TINYINT(1) |
Flaga 0/1 (tak/nie) |
VARCHAR(n) |
Tekst do n znaków |
TEXT |
Długi tekst |
DATE |
Data |
DECIMAL(m,d) |
Liczba z miejscami po przecinku |
Wskazówka: Zapamiętaj słowo kluczowe
COLUMN– jego brak to jeden z najczęstszych błędów na egzaminie.VARCHARzawsze z rozmiarem:VARCHAR(100).
Zadanie 2: ALTER TABLE – zmiana nazwy kolumny (CHANGE COLUMN)
- Cel: Zmiana nazwy istniejącej kolumny.
Wzorzec:
Przykład:
Analogia z egzaminu: „zmień w tabeli
zapisykolumnęId_klientanaId_sluchacza" – wzorzec identyczny.
Zadanie 3: ALTER TABLE – usuwanie kolumny (DROP COLUMN)
- Cel: Usunięcie kolumny z tabeli.
Wzorzec:
Przykład:
Zadanie 4: CREATE TABLE – tworzenie nowej tabeli
- Cel: Stworzenie nowej tabeli z kolumnami, ograniczeniami i kluczem obcym.
Pełny przykład:
Zadanie 5: INSERT INTO – wstawianie nowych rekordów
- Cel: Wstawienie nowego rekordu do tabeli. Klucz główny (
id) pomijamy – baza nada go automatycznie dziękiAUTO_INCREMENT.
Wzorzec:
Przykłady:
Wskazówka: Nie wpisujemy kolumny
id– baza nadaje ją automatycznie.CURDATE()wstawia aktualną datę – wzorzec „zapytanie ma charakter uniwersalny"
Schemat klucza głównego – zawsze taki sam na egzaminie:
| Element | Znaczenie |
|---|---|
INT UNSIGNED |
Liczba całkowita dodatnia |
NOT NULL |
Nie może być pusta |
AUTO_INCREMENT |
Wartość nadawana automatycznie |
PRIMARY KEY |
Klucz główny |
Najczęstsze błędy (kosztują punkty!)
- Brak słowa
COLUMNpoADD/DROP/RENAME VARCHARbez rozmiaru – zawsze podawajVARCHAR(n), np.VARCHAR(100)- Pominięcie
UNSIGNEDprzy „liczba całkowita dodatnia"
materiały: link