SQL - dátové typy: Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
 
Riadok 11: Riadok 11:
 
Medzi špeciálne dátové typy, resp. hodnoty  patrí '''NULL'''.
 
Medzi špeciálne dátové typy, resp. hodnoty  patrí '''NULL'''.
  
;NULL :nie je nula, ani medzera. NULL je špeciálna hodnota - nepriradená, prázdna, resp. žiadna. Ak sa NULL nachádza v arimetickom výraze, výsledok je vždy NULL.  
+
;NULL :nie je nula, ani medzera. NULL je špeciálna hodnota - nepriradená, prázdna, resp. žiadna. Ak sa NULL nachádza v aritmetickom výraze, výsledok je vždy NULL.  
  
  
Riadok 28: Riadok 28:
 
|-
 
|-
 
|CHAR(''veľkosť'')
 
|CHAR(''veľkosť'')
|Používa sa na uloženie reťazca pevnej dĺžky. Pevná dĺžka je defonovaná v zátvorke - ''veľkosť''. Maximálny počet znakov ne 255.
+
|Používa sa na uloženie reťazca pevnej dĺžky. Pevná dĺžka je definovaná v zátvorke - ''veľkosť''. Maximálny počet znakov je 255.
 
|-
 
|-
 
|VARCHAR(''veľkosť'')
 
|VARCHAR(''veľkosť'')
|Používa sa na uloženie reťazca premenlivej dĺžky. Táto dĺžka je defonovaná v zátvorke - ''veľkosť''. Maximálny počet znakov ne 255. Pri uvedení väčšej hodnoty ako 255 sa automaticky zmení na TEXT.
+
|Používa sa na uloženie reťazca premenlivej dĺžky. Táto dĺžka je definovaná v zátvorke - ''veľkosť''. Maximálny počet znakov je 255. Pri uvedení väčšej hodnoty ako 255 sa automaticky zmení na dátový typ TEXT.
 
|-
 
|-
 
|TINYTEXT
 
|TINYTEXT
Riadok 40: Riadok 40:
 
|-
 
|-
 
|BLOB
 
|BLOB
|Veľký binárny obejkt (BLOB - Binary Large OBjects). Umožňuje uloženie do 65535 bajtov binárnych dát.
+
|Veľký binárny objekt (BLOB - Binary Large OBjects). Umožňuje uloženie do 65535 bajtov binárnych dát.
 
|-
 
|-
 
|MEDIUMTEXT
 
|MEDIUMTEXT
Riadok 88: Riadok 88:
 
|-
 
|-
 
|DOUBLE(''Veľkosť,d'')
 
|DOUBLE(''Veľkosť,d'')
|Číslo s desatinnou časťou - s dvojitu presnosťou. Maximálny počet cifier, pre zobrazenie čísla udáva parameter ''Veľkosť''. Maximálny počet číslic vpravo od desatinnej čiarky je uvedené v parametri d. Rozsah typu DOUBLE: od 1.7976E+308 do -2.225E-308; 0; od 2.225E-308 do 1.797E+308.
+
|Číslo s desatinnou časťou - s dvojitou presnosťou. Maximálny počet cifier, pre zobrazenie čísla udáva parameter ''Veľkosť''. Maximálny počet číslic vpravo od desatinnej čiarky je uvedené v parametri d. Rozsah typu DOUBLE: od 1.7976E+308 do -2.225E-308; 0; od 2.225E-308 do 1.797E+308.
 
|-
 
|-
 
|DECIMAL(''Veľkosť,d'')
 
|DECIMAL(''Veľkosť,d'')
Riadok 121: Riadok 121:
 
|YEAR je dvoj /YEAR(2)/ alebo štvor /YEAR(4)/ ciferná reprezentácia roku.  
 
|YEAR je dvoj /YEAR(2)/ alebo štvor /YEAR(4)/ ciferná reprezentácia roku.  
 
|pre 4-ciferný formát: od 1901 do 2155
 
|pre 4-ciferný formát: od 1901 do 2155
pre 2-ciferný dormát: do 70 do 69, čo reprezentuje roky od 1970 do 2069
+
pre 2-ciferný formát: do 70 do 69, čo reprezentuje roky od 1970 do 2069
 
|}
 
|}
  
 
== Zdroje a odkazy==
 
== Zdroje a odkazy==
 
<references/>
 
<references/>

Aktuálna revízia z 19:20, 17. január 2011

Pri vytváraní databázových tabuliek musíme definovať domény atribútov relácie, čiže dátové typy pre atribúty tabuľky. V databázových systémoch rozlišujeme základné dátové typy[1][2]:

  • celočíselný (INT, ...),
  • reálny (FLOAT, DOUBLE, ...),
  • textový (VARCHAR, CHAR, TEXT, ...),
  • binárny (BLOB, ...).

Každý databázový server implementuje tieto základné dátové typy.

Medzi špeciálne dátové typy, resp. hodnoty patrí NULL.

NULL
nie je nula, ani medzera. NULL je špeciálna hodnota - nepriradená, prázdna, resp. žiadna. Ak sa NULL nachádza v aritmetickom výraze, výsledok je vždy NULL.


Databázový server MySQL podporuje celý rad dátových typov v niekoľkých kategóriách: číselné typy, typy pre dátum a čas, reťazcové (znakové) typy. V tejto časti sa nachádza opis týchto dátových typov. Pri opise dátových typov používame nasledujúce konvencie:

  • Veľkosť udáva maximálnu šírku pre celočíselné typy. Pre čísla s desatinnou časťou je Veľkosť celkový počet číslic, ktoré môžu byť uložené. Pre reťazcové typy je Veľkosť maximálna dĺžka reťazca. Maximálne prípustné hodnoty Veľkosť závisia od typu dát.
  • d sa vzťahuje len k čislam s desatinnou časťou a označuje počet číslic za desatinnou čiarkou. Maximálna možná hodnota je 30, ale mala by byť väčšia ako Veľkosť-2.
  • Hranaté zátvorky '[' a ']' hovoria o nepovinných častiach v definíciách dátových typov.

Textové typy

Textové dátové typy[3] sú CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM, a SET. V nasledujúcej tabuľke sú tieto typy opísané podrobnejšie. Pri deklarácii textového typu je možnosť definovať maximálnu veľkosť daného typu a tým optimalizovať databázový návrh z hľadiska využia miesta.

Textové dátové typy v MySQL
Dátový typ Opis
CHAR(veľkosť) Používa sa na uloženie reťazca pevnej dĺžky. Pevná dĺžka je definovaná v zátvorke - veľkosť. Maximálny počet znakov je 255.
VARCHAR(veľkosť) Používa sa na uloženie reťazca premenlivej dĺžky. Táto dĺžka je definovaná v zátvorke - veľkosť. Maximálny počet znakov je 255. Pri uvedení väčšej hodnoty ako 255 sa automaticky zmení na dátový typ TEXT.
TINYTEXT Reťazec s maximálnou dĺžkou 255 znakov.
TEXT Reťazec s maximálnou dĺžkou 65535 znakov.
BLOB Veľký binárny objekt (BLOB - Binary Large OBjects). Umožňuje uloženie do 65535 bajtov binárnych dát.
MEDIUMTEXT Reťazec s maximálnou dĺžkou 16 777 215 znakov.
MEDIUMBLOB Veľký binárny obejkt (BLOB - Binary Large OBjects). Umožňuje uloženie do 16 777 215 (16MB) bajtov binárnych dát.
LONGTEXT Dátový typ pre uloženie až 4,294,967,295 znakov.
LONGBLOB Veľký binárny obejkt (BLOB - Binary Large OBjects). Umožňuje uloženie do 4 294 967 295 bajtov (4GB) binárnych dát.
ENUM(x,y,z,atď.) Vymenovaný typ. Je potrebné určiť zoznam povolených hodnôt. Počet týchto hodnôt môže byť maximálne 65535. Ak sa pokúsime vložiť do tabuľky hodnotu, ktorú sme nedefinovali, vloží sa prázdna hodnota NULL.
SET Množina. Podobné dátovému typu ENUM s tým rozdielom, že môžeme zadefinovať maximálne 64 položiek a v tabuľke môžeme uložiť viac ako jednu položku.

Číselné typy

MySQL podporuje všetky štandardné SQL číselné dátové typy[4]. Tieto typy zahŕňajú celočíselné dátové typy (INTEGER, SMALLINT, DECIMAL a NUMERIC), ako číselné dátové typy s desatinnou časťou (FLOAT, REAL, DOUBLE PRECISION). Kľúčové slovo INT je synonymom pre INTEGER, a kľúčové slová DEC a FIXED sú synonymá pre DECIMAL. MySQL používa dátový typ DOUBLE ako synonymum pre DOUBLE PRECISSION (neštandardné rozšírenie).

Číselné dátové typy v MySQL
Dátový typ Opis
TINYINT Celé číslo v intervale od -128 do 127. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 255.
SMALLINT Celé číslo v intervale od -32768 do 32767. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 65535.
MEDIUMINT Celé číslo v intervale od -8388608 do 8388607. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 16777215.
INT Celé číslo v intervale od -2147483648 do 2147483647. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 4294967295.
BIGINT Celé číslo v intervale od -9223372036854775808 do 9223372036854775807. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 18446744073709551615.
FLOAT(Veľkosť,d) Číslo s desatinnou časťou. Maximálny počet cifier, pre zobrazenie čísla udáva parameter Veľkosť. Maximálny počet číslic vpravo od desatinnej čiarky je uvedené v parametri d. Rozsah typu FLOAT: od -3.402E+38 do -1.1751E-38, od 1.175E-38 do 3.402E+38.
DOUBLE(Veľkosť,d) Číslo s desatinnou časťou - s dvojitou presnosťou. Maximálny počet cifier, pre zobrazenie čísla udáva parameter Veľkosť. Maximálny počet číslic vpravo od desatinnej čiarky je uvedené v parametri d. Rozsah typu DOUBLE: od 1.7976E+308 do -2.225E-308; 0; od 2.225E-308 do 1.797E+308.
DECIMAL(Veľkosť,d) Hodnota DOUBLE uložená ako reťazec. Význam parametrov Veľkosť a d je rovnaký ako v predchádzajúcich príkladoch.

Dátumové typy

Dátové typy pre dátum[5] sú DATETIME, DATE, TIMESTAMP, TIME a YEAR. Každý typ má množinu hodnôt, ktoré môže nadobúdať. Dátový typ TIMESTAMP je zvláštny dátový typ, ktorého hodnota sa vypočíta pri vkladaní sama.

Dátumové dátové typy v MySQL
Dátový typ Opis Rozsah
DATE() Dátum. Formát je nasledujúci: YYYY-MM-DD. od 1000-01-01 do 9999-12-31
DATETIME() Kombinácia dátumu a času. Formát je nasledujúci: YYYY-MM-DD HH:MM:SS. od 1000-01-01 00:00:00 do 9999-12-31 23:59:59
TIMESTAMP() Časové razítko. Hodnota dátového typu TIMESTAMP je počet sekúnd od začiatku Unixovej epochy, teda od 1970-01-01 00:00:00 UTC. Format pre dátový typ TIMESTAMP je: YYYY-MM-DD HH:MM:SS. od 1970-01-01 00:00:01 UTC do 2038-01-09 03:14:07 UTC
TIME() Čas. Formát pre typ TIME je: HH:MM:SS. od -838:59:59 do 838:59:59
YEAR[(2|4)] YEAR je dvoj /YEAR(2)/ alebo štvor /YEAR(4)/ ciferná reprezentácia roku. pre 4-ciferný formát: od 1901 do 2155

pre 2-ciferný formát: do 70 do 69, čo reprezentuje roky od 1970 do 2069

Zdroje a odkazy