Lekcja 3 – Tworzenie tabel w SQL

Tabele są podstawowymi strukturami w relacyjnych bazach danych, które służą do przechowywania danych. W tej lekcji omówimy, jak tworzyć tabele, definiować kolumny i typy danych, a także jak korzystać z kluczy podstawowych (PRIMARY KEY) i obcych (FOREIGN KEY) do definiowania relacji między tabelami. Nauczysz się również, jak zarządzać strukturą tabeli po jej utworzeniu oraz jak unikać typowych błędów podczas definiowania struktury danych.

Co to jest tabela?

Tabela w bazie danych to zbiór powiązanych ze sobą rekordów, zorganizowanych w kolumnach i wierszach. Kolumny określają typy danych, jakie mogą być przechowywane (np. tekst, liczby, daty), a każdy wiersz tabeli reprezentuje pojedynczy rekord. Przykładem tabeli może być tabela użytkowników, gdzie każda kolumna przechowuje atrybut użytkownika (np. imię, nazwisko, adres e-mail), a każdy wiersz to osobny użytkownik.

Składnia polecenia CREATE TABLE

Aby utworzyć nową tabelę, używamy polecenia CREATE TABLE. Składnia tego polecenia wygląda następująco:

CREATE TABLE nazwa_tabeli (
    kolumna1 typ_danych opcje,
    kolumna2 typ_danych opcje,
    ...
    PRIMARY KEY (kolumna)
);
  • nazwa_tabeli – nazwa tabeli, którą chcesz utworzyć.
  • kolumna1, kolumna2 – nazwy kolumn, które będą przechowywały dane.
  • typ_danych – typ danych, które mogą być przechowywane w tej kolumnie (np. INT, VARCHAR, DATE).
  • opcje – dodatkowe informacje, takie jak czy kolumna może mieć wartość NULL, czy jest unikalna itp.
  • PRIMARY KEY – opcjonalnie definiuje klucz podstawowy, który jednoznacznie identyfikuje każdy wiersz.

Przykład tworzenia tabeli

Załóżmy, że chcemy stworzyć tabelę użytkowników, która będzie przechowywać ich ID, imię, nazwisko i adres e-mail. W SQL wyglądałoby to tak:

CREATE TABLE Uzytkownicy (
    ID INT AUTO_INCREMENT,
    Imie VARCHAR(50),
    Nazwisko VARCHAR(50),
    Email VARCHAR(100),
    PRIMARY KEY (ID)
);
  • ID – unikalny numer identyfikacyjny użytkownika. Używamy tutaj typu danych INT (liczba całkowita) i atrybutu AUTO_INCREMENT, który automatycznie zwiększa wartość ID dla każdego nowego wiersza. ID jest kluczem podstawowym.
  • Imie – kolumna przechowująca imię użytkownika, typ danych to VARCHAR(50), co oznacza, że kolumna może przechowywać do 50 znaków.
  • Nazwisko – kolumna przechowująca nazwisko użytkownika, także VARCHAR(50).
  • Email – kolumna na adres e-mail użytkownika, typ danych to VARCHAR(100), czyli do 100 znaków.

Typy danych w SQL

W SQL mamy różne typy danych, które definiują, jakie wartości mogą być przechowywane w kolumnach tabeli. Oto kilka najczęściej używanych typów danych:

  • INT – liczby całkowite.
  • FLOAT/DOUBLE – liczby zmiennoprzecinkowe.
  • VARCHAR(n) – ciągi tekstowe o zmiennej długości do n znaków.
  • TEXT – dłuższe ciągi tekstowe.
  • DATE – data (rok, miesiąc, dzień).
  • DATETIME – data i czas.
  • BOOLEAN – wartość logiczna (prawda/fałsz).

Wybór odpowiedniego typu danych jest ważny, ponieważ ma wpływ na wydajność bazy danych i prawidłowość przechowywanych informacji.

Klucz podstawowy (PRIMARY KEY)

Klucz podstawowy (PRIMARY KEY) to kolumna (lub zestaw kolumn), która jednoznacznie identyfikuje każdy wiersz w tabeli. Każda tabela powinna mieć klucz podstawowy, który gwarantuje, że każdy rekord jest unikalny.

W naszym przykładzie kolumna ID jest kluczem podstawowym, ponieważ każdemu użytkownikowi przypisywane jest unikalne ID.

PRIMARY KEY (ID)

Klucz podstawowy ma kilka ważnych cech:

  • Musi być unikalny – każdy rekord w tabeli ma mieć unikalną wartość w kolumnie oznaczonej jako PRIMARY KEY.
  • Nie może przyjmować wartości NULL – każdy rekord musi mieć przypisaną wartość w tej kolumnie.

Klucz obcy (FOREIGN KEY)

Klucz obcy (FOREIGN KEY) to kolumna, która odwołuje się do klucza podstawowego innej tabeli, tworząc relację między tabelami. Klucz obcy pozwala na powiązanie danych między różnymi tabelami, co jest kluczowe w relacyjnych bazach danych.

Załóżmy, że mamy tabelę Zamowienia, która przechowuje informacje o zamówieniach składanych przez użytkowników. Każde zamówienie musi być przypisane do konkretnego użytkownika, więc kolumna User_ID w tabeli Zamowienia będzie kluczem obcym, odnoszącym się do kolumny ID w tabeli Uzytkownicy.

Przykład:

CREATE TABLE Zamowienia (
    OrderID INT AUTO_INCREMENT,
    User_ID INT,
    Data DATE,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (User_ID) REFERENCES Uzytkownicy(ID)
);

W tym przykładzie:

  • OrderID – unikalny identyfikator zamówienia.
  • User_ID – klucz obcy, który odnosi się do kolumny ID w tabeli Uzytkownicy.
  • Data – kolumna przechowująca datę zamówienia.

Dzięki kluczom obcym można łatwo łączyć tabele i pobierać powiązane dane, np. wszystkie zamówienia złożone przez konkretnego użytkownika.

Modyfikowanie tabel

Jeśli już stworzyłeś tabelę, ale musisz ją zmodyfikować (np. dodać nową kolumnę), możesz użyć polecenia ALTER TABLE.

Dodanie nowej kolumny:

ALTER TABLE Uzytkownicy
ADD DataUrodzenia DATE;

Zmiana typu danych istniejącej kolumny:

ALTER TABLE Uzytkownicy
MODIFY Email VARCHAR(150);

Usunięcie kolumny:

ALTER TABLE Uzytkownicy
DROP COLUMN DataUrodzenia;

To pozwala na dostosowywanie struktury tabeli bez konieczności jej ponownego tworzenia.

Usuwanie tabeli

Jeśli chcesz usunąć całą tabelę z bazy danych, używasz polecenia DROP TABLE. Pamiętaj jednak, że usunięcie tabeli jest operacją nieodwracalną – wszystkie dane zostaną utracone.

Składnia:

DROP TABLE nazwa_tabeli;

Przykład:

DROP TABLE Uzytkownicy;

To polecenie usuwa tabelę Uzytkownicy wraz ze wszystkimi danymi.

Podsumowanie

Tworzenie tabel jest podstawą pracy z bazami danych. Tabele pozwalają na organizację danych w uporządkowany sposób, a ich odpowiednia struktura jest kluczem do efektywnej pracy z danymi. W tej lekcji nauczyliśmy się, jak tworzyć tabele za pomocą polecenia CREATE TABLE, jak definiować typy danych dla kolumn oraz jak korzystać z kluczy podstawowych i obcych do definiowania relacji między tabelami.

W kolejnych lekcjach omówimy, jak wstawiać dane do tabel, jak je aktualizować oraz jak bezpiecznie je usuwać. Praca z danymi w bazach danych to następny krok po stworzeniu solidnej struktury tabel.

Gratulacje! Ukończyłeś lekcję 3.
Przejdź teraz do lekcji 4 >> Wstawianie danych do bazy danych SQL


Spis Treści - darmowy kurs SQL


Wprowadzenie: Czym jest baza danych?
Lekcja 1: Instalacja dedykowanego środowiska dla SQL
Lekcja 2: Tworzenie bazy danych
Lekcja 3: Tworzenie tabel w SQL
Lekcja 4: Wstawianie danych do bazy danych SQL
Lekcja 5: Pobieranie danych z bazy danych SQL
Lekcja 6: Aktualizacja i usuwanie danych SQL
Lekcja 7: Operacje na danych (JOIN)
Lekcja 8: Funkcje agregujące i grupowanie danych (GROUP BY)
Lekcja 9: Podzapytania (Subqueries)
Lekcja 10: Indeksy w bazach danych
Lekcja 11: Optymalizacja zapytań SQL
Lekcja 12: Transakcje w bazach danych
Lekcja 13: Zarządzanie blokadami (Locks) i dostępem do danych
Lekcja 14: Replikacja danych w bazach danych
Lekcja 15: Partycjonowanie danych SQL
Lekcja 16: Widoki (Views) w bazach danych
Lekcja 17: Procedury składowane (Stored Procedures) i funkcje w SQL
Lekcja 18: Wyzwalacze (Triggers) w bazach danych
Lekcja 19: Zaawansowane indeksowanie w bazach danych
Lekcja 20: Narzędzia do zarządzania dużymi danymi (Big Data) w SQL
Lekcja 21: Bezpieczeństwo baz danych


Dodatki: 
- Spis najważniejszych funkcji SQL