Łapka LogoŁapka Infa
🏗️
Bazy Danych

Tworzenie Tabel i Bazy (CREATE i DROP)

Typy danych i zakładanie fundamentów, czyli język DDL w praktyce. Zobacz jak tworzy się tabele z kluczami głównymi.

Projektowanie Tabel (DDL)

Kiedy piszesz wiersze DML (Data Manipulation Language) jak omówione w poprzedniej lekcji INSERT czy UPDATE, modyfikujesz zawartość (to co leży w szufladach). Natomiast Język DDL (Data Definition Language) pozwala modyfikować same szuflady! Półki, ich rozmiar, i zasady.

Typowe komendy DDL to CREATE (Stwórz), ALTER (Zmień układ), DROP (Zniszcz).

1. Tworzenie Bazy

Przed stworzeniem tabel musisz często upewnić się, że pracujesz na odpowiednim schemacie/bazie:

CREATE DATABASE szkola;
USE szkola;

2. Tworzenie Tabeli z typami (CREATE TABLE)

Przy tworzeniu tabeli, każda kolumna oprócz nazwy musi mieć zdefiniowany twardy Typ Danych. Typ zapobiega np. wpisaniu słowa "Jabłko" do kolumny Wiek, co mogłoby zepsuć algorytmy szukające pełnoletnich w systemie.

CREATE TABLE Uczniowie (
    ID_Ucznia INT AUTO_INCREMENT PRIMARY KEY,
    Imie VARCHAR(50) NOT NULL,
    Nazwisko VARCHAR(100) NOT NULL,
    Data_Urodzenia DATE,
    Srednia_Ocen FLOAT
);

Najważniejsze MySQL-owe Typy Danych:

  • INT - Zwykła liczba całkowita (np. 12, 100).
  • VARCHAR(n) - Najlepszy typ dla słów i tekstu. n to max długość znaków. "Var" znaczy "zmienna długość" - więc jeśli podasz VARCHAR(255) a wpiszesz tam tylko "Ola", w bazie zostanie zarezerwowane miejsce na 3 znaki, a nie 255 jakby to miało miejsce w zwykłym typie CHAR.
  • DATE - Data w standardowym komputerowym formacie (YYYY-MM-DD).
  • FLOAT / DOUBLE - Liczba z ułamkiem (np. 4.56). Czasami używa się też DECIMAL, który nie generuje błędów precyzji w obliczeniach walutowych (np. w bankach).

Flagi i Klucze

  • NOT NULL oznacza "wymagane". Baza wyrzuci błąd, jeśli ktoś spróbuje dodać ucznia bez imienia.
  • PRIMARY KEY ustala, że ta kolumna jest szefem tabeli (Kluczem Głównym). Musi być absolutnie unikalna!
  • AUTO_INCREMENT to ratunek. Dzięki temu przy operacji INSERT nie musisz przejmować się liczeniem uczniów. Baza sama wstawi dla pierwszego ucznia ID równe 1, dla drugiego 2, a dla setnego 100.

3. Usuwanie Tabeli (DROP)

Zniszczenie układu.

DROP TABLE Uczniowie;

Zauważ, że DROP w przeciwieństwie do DELETE niszczy całkowicie samą tabelę - znika ona z bazy z całą zawartością, strukturą i informacjami o kluczach głównych.