Zapytanie CREATE: Tworzenie tabeli

W języku SQL polecenie CREATE TABLE służy do tworzenia nowych tabel w bazie danych. Każda tabela zawiera określone kolumny, które definiują strukturę przechowywanych danych.

W MySQL tabela jest podstawową jednostką przechowywania danych, a jej utworzenie jest pierwszym krokiem w budowie bazy danych.


Składnia zapytania CREATE TABLE

  • nazwa_tabeli – nazwa nowej tabeli.
  • kolumna – nazwa kolumny w tabeli.
  • typ_danych – typ danych, np. `INT`, `VARCHAR(100)`, `DATE`.
  • opcje – dodatkowe parametry, np. `PRIMARY KEY`, `AUTO_INCREMENT`.
Przykład
CREATE TABLE nazwa_tabeli (
    kolumna1 typ_danych opcje,
    kolumna2 typ_danych opcje,
    ...
);

Tworzenie przykładowej tabeli

📝 Opis:

  • id - klucz główny (PRIMARY KEY), automatycznie zwiększany (AUTO_INCREMENT).
  • imie, nazwisko - pola tekstowe (VARCHAR), wymagane (NOT NULL).
  • email - unikalny adres (UNIQUE).
  • data_rejestracji - domyślnie ustawiana na bieżącą datę (DEFAULT CURRENT_DATE).
Przykład
CREATE TABLE uzytkownicy (
    id INT AUTO_INCREMENT PRIMARY KEY,
    imie VARCHAR(50) NOT NULL,
    nazwisko VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    data_rejestracji DATE DEFAULT CURRENT_DATE
);

Tworzenie tabeli z kluczem obcym

📝 Opis:

  • id - unikalny identyfikator zamówienia.
  • uzytkownik_id - odnosi się do id w tabeli uzytkownicy (klucz obcy FOREIGN KEY).
  • data_zamowienia - automatycznie ustawiana na aktualny czas (CURRENT_TIMESTAMP).
  • status - wartości ENUM, które określają status zamówienia.
  • ON DELETE CASCADE - jeśli użytkownik zostanie usunięty, jego zamówienia również zostaną usunięte.
Przykład
CREATE TABLE zamowienia (
    id INT AUTO_INCREMENT PRIMARY KEY,
    uzytkownik_id INT,
    data_zamowienia DATETIME DEFAULT CURRENT_TIMESTAMP,
    status ENUM('oczekujące', 'zrealizowane', 'anulowane') NOT NULL,
    FOREIGN KEY (uzytkownik_id) REFERENCES uzytkownicy(id) ON DELETE CASCADE
);

Podsumowanie

  • Polecenie CREATE TABLE pozwala na utworzenie nowych tabel w MySQL.
  • Każda kolumna musi mieć określony typ danych i ewentualne ograniczenia (NOT NULL, UNIQUE, AUTO_INCREMENT).
  • Można definiować klucze główne (PRIMARY KEY) oraz klucze obce (FOREIGN KEY).
  • Możliwe jest ustawienie domyślnych wartości, np. `CURRENT_TIMESTAMP` dla daty.
  • Struktura tabeli może być później modyfikowana przy użyciu instrukcji ALTER TABLE.