Dátové typy a modifikátory

Dátové typy

Dáta obsiahuté v jednotlivých stĺpcoch tabuľky môžu byť rôzneho typu. K dispozícii sú jednotlivé typy pre celé a reálne čísla, pre textové reťazce, pre čas a dátum atď. Najpoužívanejšie typy sú:

Dátový typ Popis
bigint celé číslo v rozsahu od -9 223 372 036 854 775 808 do 9 223 372 036 854 775 807
prípadne bez znamienka od 0 do 18 446 744 073 709 550 615
int celé číslo v rozsahu od -2 147 483 648 do 2 147 483 647
prípadne bez znamienka od 0 do 4 294 967 295
mediumint celé číslo v rozsahu od -8 388 608 do 8 388 607
prípadne bez znamienka od 0 do 16 777 215
smallint celé číslo v rozsahu od -32 768 do 32 767
prípadne bez znamienka od 0 do 65 535
tinyint celé číslo v rozsahu od -128 do 127
prípadne bez znamienka od 0 do 255
float číslo s pohyblivou rádovou čiarkou
double(p,d) desatinné číslo s p platnými číslicami
decimal(p,d) desatinné číslo s p platnými číslicami a s d desatinnými miestami
char(n) textový reťazec - pole pevnej dĺžky (max. 255 znakov)
varchar(n) textový reťazec - pole premenlivej dĺžky (max. 255 znakov)
text
blob
pole premenlivej dĺžky pre ukladanie objemných binárnych dát (napr. grafiky, zvuku alebo dlhých textov), max. veľkosť je 65 535
money peňažná čiastka
datetime údaj o čase a dátume vo formáte RRRR-MM-DD HH:MM:SS
time údaj o čase vo formáte HH:MM:SS
date údaj o dátume vo formáte RRRR-MM-DD


Ďalšie dátové typy

Existujú aj ďalšie dátové typy:

Dátový typ ENUM

Dátový typ ENUM umožňuje pri definícii poľa definovať nejaký zoznam hodnôt s tým, že niektorá z hodnôt bude vybraná. Zoznam hodnôt predstavuje pole reťazcov.
Funkčne by sme mohli prirovnať typ ENUM k radio button, viz. obrázok.

Enum

Dátový typ SET

SET umožňuje vybrať žiadnu alebo viac možností zo zoznamu naraz. SET by sme mohli prirovnať ku výberu možností pomocou checkboxov. Dátový typ SET môže ponúkať k "označeniu" až 64 hodnôt.

Hodnota NULL

NULL nie je samostatný dátový typ a preto do tejto stránky presne povedané nepatrí, ale vyššie bola o nej zmienka, preto si o nej niečo povieme. NULL je zvlášna hodnota reprezentujúca stav "nezadané" alebo "neznáme". To či stĺpec smie alebo nesmie obsahovať hodnoty NULL sa dá definovať pri jeho vzniku. Hodnota NULL je dosť zvláštna. Napríklad výsledkom 1 + NULL nebude jedna ako by sme si mohli myslieť. Výraz by mal byť chápaný ako jedna plus neznáma hodnota a vyhodnotené ako neznáma hodnota. Podobne je na tom aj rovnosť NULL = NULL. Jedna hodnota NULL sa nikdy nerovná inej hodnote NULL, pretože sa jedná o dve neznáme hodnoty.



Modifikátory dátových polí

Sú to kľúčové slová, ktoré upravujú chovanie jednotlivých polí tabuľky.

Názov modifikátoru Popis Použitie pri type poľa
AUTO_INCREMENT Automatické vloženie jedinečného čísla zvýšeného o jednotku pri pridaní nového záznamu do tabuľky. všetky typy int
BINARY Umožňuje ukladanie textov ako binárnych reťazcov. Rozlišuje sa veľkosť písmen. char, varchar
DEFAULT Umožňuje zmeniť implicitnú hodnotu poľa. Východzia hodnota používaná v MySQL je NULL. všetky typy okrem text a blob
NOT NULL Určuje, že pole musí obsahovať hodnotu. všetky typy
NULL Určuje, že pole môže obsahovať prázdnu hodnotu NULL. všetky typy
PRIMARY KEY Pole, ktorého hodnota jedinečným spôsobom identifikuje každý záznam tabuľky. Nedovoľuje hodnotu NULL a musí mať jedinečný index. všetky typy
UNIQUE Zaisťuje integritu entity kľúčom, ktorý nie je primárny. Nesmie obsahovať duplicitné hodnoty. všetky typy
UNSIGNED Definuje pole, do ktorého je možné ukladať len kladné čísla. Automaticky posunie interval povolených hodnôt pre daný typ do kladnej časovej osy. číselné typy
ZEROFILL Používa sa k zobrazeniu vedúcich núl pri číslach, ktoré vyžadujú určitý počet čísel. číselné typy