Do cen i kwot finansowych zawsze używaj DECIMAL, nie FLOAT! Float może wprowadzać błędy zaokrąglenia.
📝
2. Typy tekstowe
Typ
Opis
Maks. długość
Przykład użycia
CHAR(n)
Tekst o stałej długości n
255 znaków
kod_pocztowy CHAR(6)
VARCHAR(n)
Tekst o zmiennej długości (do n)
65 535 znaków
imie VARCHAR(50)
TEXT
Długi tekst
65 535 znaków
opis, treść artykułu
MEDIUMTEXT
Bardzo długi tekst
16 MB
treść książki
LONGTEXT
Ekstremalnie długi tekst
4 GB
kod źródłowy, logi
ENUM
Lista dozwolonych wartości
65 535 opcji
plec ENUM('M','K')
CHAR zajmuje zawsze n bajtów (uzupełnia spacjami), VARCHAR — tylko tyle, ile potrzeba + 1–2 bajty na długość. Używaj VARCHAR dla nazw, CHAR dla kodów o stałej długości.
📅
3. Typy dat i czasu
Typ
Format
Zakres
Przykład użycia
DATE
RRRR-MM-DD
1000-01-01 do 9999-12-31
data_urodzenia
TIME
GG:MM:SS
-838:59:59 do 838:59:59
czas_trwania
DATETIME
RRRR-MM-DD GG:MM:SS
1000-01-01 do 9999
data_zamowienia
TIMESTAMP
RRRR-MM-DD GG:MM:SS
1970 do 2038
data_modyfikacji
YEAR
RRRR
1901 do 2155
rok_wydania
TIMESTAMP jest zależny od strefy czasowej serwera i ma ograniczony zakres (do 2038). Dla dat historycznych używaj DATETIME.
🎛️
4. Pozostałe typy i atrybuty kolumn
Typ
Opis
BOOLEAN / TINYINT(1)
Wartość logiczna: TRUE (1) lub FALSE (0)
BLOB
Dane binarne (zdjęcia, pliki)
JSON
Dane w formacie JSON (MySQL 5.7+)
Ważne atrybuty kolumn
Atrybut
Znaczenie
NOT NULL
Kolumna musi mieć wartość (nie może być pusta)
NULL
Kolumna może być pusta (domyślnie)
DEFAULT wartość
Wartość domyślna gdy nie podano innej
AUTO_INCREMENT
Automatyczne zwiększanie wartości (dla PK)
UNIQUE
Wartości muszą być unikalne w kolumnie
UNSIGNED
Tylko wartości nieujemne (dla liczb)
Przykład definicji tabeli
CREATE TABLEpracownicy (
id_pracownika INTAUTO_INCREMENT PRIMARY KEY,
imie VARCHAR(50) NOT NULL,
nazwisko VARCHAR(80) NOT NULL,
email VARCHAR(120) UNIQUE NOT NULL,
data_urodzenia DATENULL,
wynagrodzenie DECIMAL(10,2) NOT NULL DEFAULT0.00,
aktywny BOOLEANDEFAULTTRUE,
data_zatrud TIMESTAMPDEFAULT CURRENT_TIMESTAMP
);
✏️
Zadania interaktywne
Zadanie 1Dobierz typ danych
Dla każdego atrybutu wybierz najlepszy typ danych:
Cena produktu (np. 29.99)
Data urodzenia
Opis produktu (długi tekst)
Liczba sztuk w magazynie
Czy użytkownik jest aktywny
Zadanie 2Quiz — atrybuty kolumn
Pytanie: Które stwierdzenie dotyczące AUTO_INCREMENT jest PRAWDZIWE?
Można go użyć na dowolnej kolumnie tekstowej
Automatycznie zwiększa wartość przy każdym nowym rekordzie; używany zazwyczaj z PRIMARY KEY
Działa tylko z typem DECIMAL
Uniemożliwia wstawienie rekordów ręcznie
Zadanie 3Uzupełnij definicję tabeli
Uzupełnij brakujące typy danych (wpisz w kratki):
CREATE TABLEksiazki (
id_ksiazki AUTO_INCREMENT PRIMARY KEY,
tytul NOT NULL,
rok_wydania ,
cena NOT NULL,
dostepna DEFAULT TRUE
);
📌 Zapamiętaj
INT — liczby całkowite | DECIMAL(p,s) — precyzyjne kwoty finansowe
VARCHAR(n) — tekst zmienny | CHAR(n) — tekst stały (np. kody)
DATE — data | DATETIME — data + czas | TIMESTAMP — do 2038!
BOOLEAN — wartość logiczna (TRUE/FALSE = 1/0)
NOT NULL, DEFAULT, AUTO_INCREMENT, UNIQUE — ważne atrybuty kolumn