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.nto max długość znaków. "Var" znaczy "zmienna długość" - więc jeśli podaszVARCHAR(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 typieCHAR.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 NULLoznacza "wymagane". Baza wyrzuci błąd, jeśli ktoś spróbuje dodać ucznia bez imienia.PRIMARY KEYustala, że ta kolumna jest szefem tabeli (Kluczem Głównym). Musi być absolutnie unikalna!AUTO_INCREMENTto 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.
