Nakon što ste naučili kako kreirati MySQL bazu podataka prije samog kreiranja tablica u bazi potrebno je poznavati vrste podataka koje će vaša MySQL baza sadržavati.
Postoje tri osnovne vrste podataka:
- tekstualni
- numerički
- datum/vrijeme
Samim odabirom vrste podataka zapravo definirate koja vrsta informacije će biti pohranjena u to polje tablice, odnosno temeljem onoga što želite pohraniti u bazu. Odabirom ispravne vrste podataka znatno možete utjecati na performanse same MySQL baze podataka.
Tekstualni tipovi podataka
CHAR( ) | String fiksne dužine od 0 do 255 znakova. |
VARCHAR( ) | String promjenjive dužine od 0 do 255 znakova |
TINYTEXT | String maksimalne dužine 255 znakova. |
TEXT | String maksimalne dužine 65535 znakova. |
BLOB | String maksimalne dužine 65535 znakova. |
MEDIUMTEXT | String maksimalne dužine 16777215 znakova. |
MEDIUMBLOB | String maksimalne dužine 16777215 znakova. |
LONGTEXT | String maksimalne dužine 4294967295 znakova. |
LONGBLOB | String maksimalne dužine 4294967295 znakova. |
Maksimalnu dužinu znakova kod definicije tipa podatka upisujete u uglate zagrade (), npr. VARCHAR (50), što znači da to polje može primiti string maksimalne dužine do 50 znakova.
CHAR tip podataka zbog toga što je fiksne dužine je malo brži kod VARCHAR, jer je u cijelom stupcu zapravo ne mijenja svoju dužinu, već ostaje isti. No zbog fiksne dužine troši više memorije nego VARCHAR.
BLOB i TEXT su po svojoj duljini jednaki i zapravo predstavljaju verziju VARCHAR tipa podataka koji može spremiti više od 255 znakova, točnije 65535.
Numerički tipovi
TINYINT( ) | -128 do 127 normal |
0 do 255 UNSIGNED | |
SMALLINT( ) | -32768 do 32767 normal |
0 do 65535 UNSIGNED | |
MEDIUMINT( ) | -8388608 do 8388607 normal |
0 do 16777215 UNSIGNED | |
INT( ) | -2147483648 do 2147483647 normal |
0 do 4294967295 UNSIGNED | |
BIGINT( ) | -9223372036854775808 do 9223372036854775807 normal |
0 do 18446744073709551615 UNSIGNED | |
FLOAT | Manji broj s pomičnim zarezom. |
DOUBLE( , ) | Veći broj s pomičnim zarezom. |
DECIMAL( , ) | DOUBLE spremljen kao string i to točno određene dužine.. |
Cijeli brojevi (integer) imaju dodatnu opciju zvanu UNSIGNED koja određeni numerički tip umjesto u raspon od negativnog do pozitivnog prebacuje u pozitivni raspon počevši od nule.
Datum i vrijeme
DATE | YYYY-MM-DD. |
DATETIME | YYYY-MM-DD HH:MM:SS. |
TIMESTAMP | YYYYMMDDHHMMSS. |
TIME | HH:MM:SS. |
Ostali/dodatni tipovi
ENUM ( ) | do 65535 znakova |
Svojevrsno nabrajanje, što znači da svaki ovakav stupac može imati samo jednu od prethodno definiranih vrijednosti | |
SET | do 64 znaka |
Sličan ENUM tipu podatka no svaki supac može sadržavati više prethodno definiranih vrijednosti |
Kao i kod definiranja dužine određenog tipa podataka tako se i kod ENUM vrijednosti definiraju unutar zagrada.
Naravno da postoje još neki tipovi podataka, no o tome u jednom od kasnijih tutorijala, a o načinu na koji se to radi ću u slijedećem tutorijalu “MySQL tablice – kreiranje ažuriranje brisanje”.