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

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Riadok 16: Riadok 16:
 
MySQL podporuje celý rad dátových typov v niekoľkých kategóriách: číselné typy, typy pre dátum a čas, reťazecové (znakové) typy. V tejto časti je týchtodátových typov.  
 
MySQL podporuje celý rad dátových typov v niekoľkých kategóriách: číselné typy, typy pre dátum a čas, reťazecové (znakové) typy. V tejto časti je týchtodátových typov.  
 
Pri opise dátových typov používame nasledujúce konvencie:
 
Pri opise dátových typov používame nasledujúce konvencie:
* M udáva maximálnu šírku pre celočíselné typy. Prečísla s desatinnou časťou je M je celkový počet číslic, ktoré môžu byť uložené. Pre reťazcové typy je M maximálna dĺžka reťazca. Maximálne prípustné hodnoty M závisia od typu dát.
+
* ''Size'' udáva maximálnu šírku pre celočíselné typy. Prečísla s desatinnou časťou je ''Size'' je celkový počet číslic, ktoré môžu byť uložené. Pre reťazcové typy je ''Size'' maximálna dĺžka reťazca. Maximálne prípustné hodnoty ''Size'' 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 M-2.
+
* ''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 ''Size-2''.
 
*  Hranaté zátvorky ('<nowiki>[</nowiki>' a '<nowiki>]</nowiki>') hovoria o nepovinných častiach v definíciách dátových typov.
 
*  Hranaté zátvorky ('<nowiki>[</nowiki>' a '<nowiki>]</nowiki>') hovoria o nepovinných častiach v definíciách dátových typov.
  
Riadok 68: Riadok 68:
 
!Dátový typ
 
!Dátový typ
 
!Opis
 
!Opis
!width="200"|Veľkosť/Rozsah
 
 
|-
 
|-
 
|TINYINT
 
|TINYINT
 
|Celé číslo v intervale od -128 do 127. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 255.  
 
|Celé číslo v intervale od -128 do 127. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 255.  
|1 Bajt
 
 
|-
 
|-
 
|SMALLINT
 
|SMALLINT
 
|Celé číslo v intervale od -32768 do 32767. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 65535 UNSIGNED
 
|Celé číslo v intervale od -32768 do 32767. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 65535 UNSIGNED
|2 Bajty
 
 
|-
 
|-
 
|MEDIUMINT
 
|MEDIUMINT
 
|Celé číslo v intervale od -8388608 to 8388607 normal. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 16777215 UNSIGNED
 
|Celé číslo v intervale od -8388608 to 8388607 normal. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 16777215 UNSIGNED
|3 Bajty
 
 
|-
 
|-
 
|INT
 
|INT
 
|Celé číslo v intervale od -2147483648 do 2147483647. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 4294967295 UNSIGNED
 
|Celé číslo v intervale od -2147483648 do 2147483647. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 4294967295 UNSIGNED
|4 Bajty
 
 
|-
 
|-
 
|BIGINT
 
|BIGINT
 
|Celé číslo v intervale od -9223372036854775808 do 9223372036854775807. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 18446744073709551615 UNSIGNED
 
|Celé číslo v intervale od -9223372036854775808 do 9223372036854775807. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 18446744073709551615 UNSIGNED
|8 Bajtov
 
 
|-
 
|-
 
|FLOAT(''size,d'')
 
|FLOAT(''size,d'')
|Číslo s desatinnou časťou. Maximálny počet cifier, pre zobrazenie čísla udáva parameter ''size''. Maximálny počet číslic vpravo od desatinnej čiarky je uvedené v parametri d.
+
|Číslo s desatinnou časťou. Maximálny počet cifier, pre zobrazenie čísla udáva parameter ''size''. Maximálny počet číslic vpravo od desatinnej čiarky je uvedené v parametri d. Rozsah typu FLAOT: od -3.402E+38 do -1.1751E-38od 1.175E-38 do 3.402E+38.
|od -3.402E+38 do -1.1751E-38
 
od 1.175E-38 do 3.402E+38.
 
 
|-
 
|-
 
|DOUBLE(''size,d'')
 
|DOUBLE(''size,d'')
|Číslo s desatinnou časťou - s dvojitu presnosťou. Maximálny počet cifier, pre zobrazenie čísla udáva parameter ''size''. Maximálny počet číslic vpravo od desatinnej čiarky je uvedené v parametri d.
+
|Číslo s desatinnou časťou - s dvojitu presnosťou. Maximálny počet cifier, pre zobrazenie čísla udáva parameter ''size''. 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.
|1.7976E+308 do -2.225E-308; 0
 
od 2.225E-308 do 1.797E+308.
 
 
|-
 
|-
 
|DECIMAL(''size,d'')
 
|DECIMAL(''size,d'')
 
|Hodnota DOUBLE uložená ako reťazec. Význam parametrov ''size'' a ''d'' je rovnaký ako v predchádzajúcich príkladoch.
 
|Hodnota DOUBLE uložená ako reťazec. Význam parametrov ''size'' a ''d'' je rovnaký ako v predchádzajúcich príkladoch.
|
 
 
|}
 
|}
  

Verzia zo dňa a času 22:04, 9. 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 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 arimetickom výraze, výsledok je vždy NULL.

MySQL

MySQL podporuje celý rad dátových typov v niekoľkých kategóriách: číselné typy, typy pre dátum a čas, reťazecové (znakové) typy. V tejto časti je týchtodátových typov. Pri opise dátových typov používame nasledujúce konvencie:

  • Size udáva maximálnu šírku pre celočíselné typy. Prečísla s desatinnou časťou je Size je celkový počet číslic, ktoré môžu byť uložené. Pre reťazcové typy je Size maximálna dĺžka reťazca. Maximálne prípustné hodnoty Size 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 Size-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 defonovaná v zátvorke - veľkosť. Maximálny počet znakov ne 255.
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 tym zmení na 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 obejkt (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 Holds a string with a maximum length of 4,294,967,295 characters
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.
SET Množina. Podobné dátovému typu ENUM s tým rozdielom, že môžeme zadefinovať maximálne 64 položiek a 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ú presné čí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 UNSIGNED
MEDIUMINT Celé číslo v intervale od -8388608 to 8388607 normal. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 16777215 UNSIGNED
INT Celé číslo v intervale od -2147483648 do 2147483647. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 4294967295 UNSIGNED
BIGINT Celé číslo v intervale od -9223372036854775808 do 9223372036854775807. Pri doplnení špecifikátora UNSIGNED je rozsah od 0 do 18446744073709551615 UNSIGNED
FLOAT(size,d) Číslo s desatinnou časťou. Maximálny počet cifier, pre zobrazenie čísla udáva parameter size. Maximálny počet číslic vpravo od desatinnej čiarky je uvedené v parametri d. Rozsah typu FLAOT: od -3.402E+38 do -1.1751E-38, od 1.175E-38 do 3.402E+38.
DOUBLE(size,d) Číslo s desatinnou časťou - s dvojitu presnosťou. Maximálny počet cifier, pre zobrazenie čísla udáva parameter size. 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(size,d) Hodnota DOUBLE uložená ako reťazec. Význam parametrov size a d je rovnaký ako v predchádzajúcich príkladoch.

Dátumové typy

Dátové typy[5] pre dátum sú DATETIME, DATE, TIMESTAMP, TIME a YEAR. Každý typ má časový množinu hodnôt, ktoré môže nadobúdať.Dátový typ TIMESTAMP je zvláštny dátový typ, ktorého hodnota sa počí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:00do 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ý dormát: do 70 do 69, čo reprezentuje roky od 1970 do 2069


MS ACCESS

V aplik8cii MS access existujú nasledovné dátové typy[6]:

Dátový typ Opis Potrebné miesto
Slovensky Anglicky
Text Text Používa sa pre uloženie alfa-numerických znakov s maximálnou dĺžkou 255 znakov.
Memo Memo Používa sa pre uloženie väčšieho množstva textu. Môžme tu uložiť až 65536 znakov.
Bajt Byte Povoľuje uložiť číslo od 0 do 255 1 bajt
Číslo Integer Povoľuje uložiť číslo v rozmedzí od -32768 do 32767 2 bajty
Číslo Long Povoľuje uložiť číslo v rozmedzí od -2 147 483 648 do 2 147 483 647 4 bajty
Reálne číslo Single Reálne číslo 4 bajty
Reálne číslo Double Reálne číslo s dvojitou presnosťou. 8 bajty
Mena Currency Určené pre ukladanie údajov finančného charakteru. Dovoľuje uložiť číslo s maximálne 15-timi ciframi v celej časti a 4 desatinné miesta. Pri defonované tohoto dátového typu je možné zvoliť menu. 8 bajtov
Automatické číslo AutoNumber Hodnota tohto dátového typu sa automaticky zvyšuje pri vložení nového záznamu. 4 bajty
Dátum/čas Date/Time Používa sa pre uloženie dátumu a času 8 bajtov
Áno/Nie Yes/No Logická hodnota môže byť zobrazená ako Áno/Nie, Pravda/Nepravda, resp. true/false. Poznámka: hodnota NULL nie je povolená. 1 bit
Objekt OLE OLE Object OLE objekt môže obsahovať multiediálne dáta ako napríklad grafiku, zvuky, video, alebo iné binárne dáta (BLOB - Binary Large OBjects) do 1GB
Hypertextový odkaz Hyperlink Obsahuje odkazy na ostatné polia alebo internetové odkazy
Sprievodca vyhľadávaním Lookup Wizard Sprievodca slúži k vytváraniu polí, ktoré umožňujú vybrať hodnotu z inej tabuľky alebo zo zoznamu hodnôt pomocou poľa so zoznamom. 4 bajty


Zdroje a odkazy