Poniższa tabela prezentuje najpopularniejsze typy danych stosowane w MySQL:
Przykład utworzenia tabeli:
CREATE TABLE linki (
link_id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
tytul VARCHAR(50) NOT NULL,
krotki_opis VARCHAR(250) NOT NULL,
dlugi_opis TEXT NOT NULL,
email_autora VARCHAR(50),
haslo CHAR(16) NOT NULL,
data_dodania DATETIME NOT NULL,
data_edycji DATETIME,
PRIMARY KEY( link_id)
);
Typy CHAR i VARCHAR
Oba typy określają tekst (ciąg znaków) o długości określonej w nawiasie. Maksymalna długość ciągu wynosi 255 znaków (łącznie ze spacjami) - jeżeli zostanie podany większy łańcuch, tekst zostanie obcięty.
Jest jednak istotna różnica pomiędzy tymi dwoma typami. Otóż posługując się typem CHAR trzeba mieć na uwadze, że kolumna będzie przechowywała dokładnie taką ilość znaków, jaka została określona w nawiasie - nawet jeśli zostanie podany ciąg krótszy (pozostałe miejsca zostaną zastąpione spacjami). W przypadku typu VARCHAR przechowywana jest długość podanego łańcucha + 1 bajt.
Dodatkowo przy odczytywaniu danych z kolumny typu CHAR niepotrzebne spacje są obcinane, natomiast w przypadku typu VARCHAR zbędne spacje są obcinane przy wstawianiu danych do kolumny.
Typ CHAR powinien być stosowany do przechowywania danych o stałej szerokości, mogą to być hasła (ciąg znaków + spacje na końcu), kody pocztowe, numery kont bankowych (26 cyfr) czy inne podobne. Typ VARCHAR powinien być stosowany tam, gdzie przechowywane dane mogą być dowolnej długości do 255 znaków - czyli odwrotnie do typu CHAR.
Należy też pamiętać, że typ VARCHAR będzie charakteryzował się mniejszym rozmiarem na dysku niż typ CHAR.
Data i czas chwili obecnej - NOW()
Jeżeli zaistnieje potrzeba wstawienia czasu i/lub daty chwili obecnej, można posłużyć się funkcją NOW(). Jest to jedna ze standardowych funkcji MySQL.
Format daty i czasu określamy typem danych kolumny - w zależności jaki format daty wybierzemy (patrz tabela), taki będzie zapisany za pomocą funkcji NOW() (więc nie musimy dbać o ustawienie dodatkowych parametrów tej funkcji).
Obecny czas i data mogą okazać się bardzo przydatne w wielu projektach dynamicznych stron WWW. Przykładem zastosowania mogą być daty:
- wstawienia i modyfikacji artykułów,
- wstawienia i modyfikacji news,
- dodania komentarza,
- ostatniej modyfikacji strony,
- rejestracji użytkowników i wiele innych...
A oto przykład zapisania obecnej daty i czasu:
INSERT INTO nazwa_tabeli ( data_dodania ) VALUES ( NOW() );
Zauważ, że funkcja NOW() nie została objęta apostrofami.
Można także użyć polecenia UPDATE, np. do zaznaczenia daty modyfikacji.
UPDATE nazwa_tabeli SET ostatnia_zmiana=NOW();