logo

SQL datové typy

Datové typy se používají k vyjádření povahy dat, která lze uložit do databázové tabulky. Například v konkrétním sloupci tabulky, pokud chceme uložit data typu řetězec, budeme muset deklarovat datový typ řetězce tohoto sloupce.

Datové typy jsou pro každou databázi rozděleny do tří kategorií.

  • Řetězec Datové typy
  • Číselné datové typy
  • Datum a čas Typy dat

Datové typy v MySQL, SQL Server a Oracle Database

MySQL datové typy

Seznam datových typů používaných v databázi MySQL. To je založeno na MySQL 8.0.

Datové typy řetězců MySQL

CHAR(velikost) Používá se k určení řetězce pevné délky, který může obsahovat čísla, písmena a speciální znaky. Jeho velikost může být 0 až 255 znaků. Výchozí hodnota je 1.
VARCHAR(velikost) Používá se k určení řetězce proměnné délky, který může obsahovat čísla, písmena a speciální znaky. Jeho velikost může být od 0 do 65535 znaků.
BINÁRNÍ (velikost) Je roven CHAR(), ale ukládá binární bajtové řetězce. Jeho parametr size udává délku sloupce v bajtech. Výchozí hodnota je 1.
VARBINARY (velikost) Je roven VARCHAR(), ale ukládá binární bajtové řetězce. Jeho parametr size udává maximální délku sloupce v bajtech.
Velikost textu) Obsahuje řetězec, který může obsahovat maximální délku 255 znaků.
TINYTEXT Obsahuje řetězec o maximální délce 255 znaků.
STŘEDNÍ TEXT Drží strunu o maximální délce 16 777 215.
LONGTEXT Obsahuje řetězec o maximální délce 4 294 967 295 znaků.
ENUM(hodnota1; hodnota2; hodnota3;...) Používá se, když má řetězcový objekt pouze jednu hodnotu vybranou ze seznamu možných hodnot. Obsahuje 65535 hodnot v seznamu ENUM. Pokud vložíte hodnotu, která není v seznamu, bude vložena prázdná hodnota.
SET( hodnota1, hodnota2, hodnota3,....) Používá se k určení řetězce, který může mít 0 nebo více hodnot vybraných ze seznamu možných hodnot. V seznamu SET můžete uvést až 64 hodnot najednou.
BLOB (velikost) Používá se pro BLOB (binární velké objekty). Může pojmout až 65 535 bajtů.

Číselné datové typy MySQL

BIT (velikost) Používá se pro typ bitové hodnoty. Počet bitů na hodnotu je určen velikostí. Jeho velikost může být 1 až 64. Výchozí hodnota je 1.
INT(velikost) Používá se pro celočíselnou hodnotu. Jeho rozsah se znaménkem se pohybuje od -2147483648 do 2147483647 a rozsah bez znaménka se pohybuje od 0 do 4294967295. Parametr size určuje maximální šířku displeje, která je 255.
INTEGER(velikost) Je roven INT (velikost).
FLOAT(velikost; d) Používá se k určení čísla s plovoucí desetinnou čárkou. Parametr velikost udává celkový počet číslic. Počet číslic za desetinnou čárkou je určen d parametr.
FLOAT (p) Používá se k určení čísla s plovoucí desetinnou čárkou. MySQL použil parametr p k určení, zda použít FLOAT nebo DOUBLE. Pokud je p mezi 0 až 24, datovým typem se stane FLOAT (). Pokud je p od 25 do 53, datový typ se změní na DOUBLE().
DOUBLE (velikost; d) Je to číslo s pohyblivou řádovou čárkou normální velikosti. Parametr velikost udává celkový počet číslic. Počet číslic za desetinnou čárkou je určen parametrem d.
DECIMAL(velikost; d) Používá se k určení čísla pevného bodu. Parametr velikost udává celkový počet číslic. Počet číslic za desetinným parametrem je určen pomocí d parametr. Maximální hodnota pro velikost je 65 a výchozí hodnota je 10. Maximální hodnota pro d je 30 a výchozí hodnota je 0.
DEC(velikost; d) Je rovna DECIMAL (velikost, d).
BOOL Používá se k určení booleovských hodnot true a false. Nula je považována za nepravdivou a nenulové hodnoty jsou považovány za pravdivé.

MySQL datové typy data a času

DATUM Používá se k určení formátu data RRRR-MM-DD. Jeho podporovaný rozsah je od '1000-01-01' do '9999-12-31'.
DATETIME (fsp) Používá se k určení kombinace data a času. Jeho formát je RRRR-MM-DD hh:mm:ss. Jeho podporovaný rozsah je od '1000-01-01 00:00:00' do 9999-12-31 23:59:59'.
TIMESTAMP(fsp) Používá se k určení časového razítka. Jeho hodnota je uložena jako počet sekund od epochy Unixu ('1970-01-01 00:00:00' UTC). Jeho formát je RRRR-MM-DD hh:mm:ss. Jeho podporovaný rozsah je od '1970-01-01 00:00:01' UTC do '2038-01-09 03:14:07' UTC.
ČAS (fsp) Slouží k určení formátu času. Jeho formát je hh:mm:ss. Jeho podporovaný rozsah je od '-838:59:59' do '838:59:59'
ROK Používá se k určení roku ve čtyřmístném formátu. Povolené hodnoty ve čtyřmístném formátu od 1901 do 2155 a 0000.

SQL Server datové typy

Typ dat řetězce SQL Server

char(n) Jedná se o datový typ znakového řetězce s pevnou šířkou. Jeho velikost může být až 8000 znaků.
varchar(n) Jedná se o datový typ řetězce znaků s proměnnou šířkou. Jeho velikost může být až 8000 znaků.
varchar(max) Jedná se o datové typy řetězce znaků s proměnnou šířkou. Jeho velikost může být až 1 073 741 824 znaků.
text Jedná se o datový typ řetězce znaků s proměnnou šířkou. Jeho velikost může být až 2 GB textových dat.
nchar Jde o datový typ řetězce Unicode s pevnou šířkou. Jeho velikost může být až 4000 znaků.
nvarchar Jedná se o datový typ řetězce Unicode s proměnnou šířkou. Jeho velikost může být až 4000 znaků.
ntext Jedná se o datový typ řetězce Unicode s proměnnou šířkou. Jeho velikost může být až 2 GB textových dat.
binární(n) Jedná se o datový typ Binary string s pevnou šířkou. Jeho velikost může být až 8000 bajtů.
varbinární Jedná se o datový typ Binary string s proměnnou šířkou. Jeho velikost může být až 8000 bajtů.
obraz Je to také datový typ Binary string s proměnnou šířkou. Jeho velikost může být až 2 GB.

SQL Server Číselné datové typy

bit Je to celé číslo, které může být 0, 1 nebo null.
tinyint Umožňuje celá čísla od 0 do 255.
Smallint Umožňuje celá čísla mezi -32 768 a 32 767.
Int Umožňuje celá čísla mezi -2,147,483,648 a 2,147,483,647.
bigint Umožňuje celá čísla mezi -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807.
plovoucí (n) Používá se ke specifikaci číselných dat s plovoucí přesností od -1,79E+308 do 1,79E+308. Parametr n udává, zda má pole obsahovat 4 nebo 8 bajtů. Výchozí hodnota n je 53.
nemovitý Jedná se o číselný údaj s plovoucí přesností od -3,40E+38 do 3,40E+38.
peníze Používá se ke specifikaci peněžních údajů od -922,337,233,685,477,5808 do 922,337,203,685,477,5807.

Typ dat data a času serveru SQL Server

čas schůzky Používá se k určení kombinace data a času. Podporuje rozsah od 1. ledna 1753 do 31. prosince 9999 s přesností 3,33 milisekund.
datum a čas2 Používá se k určení kombinace data a času. Podporuje rozsah od 1. ledna 0001 do 31. prosince 9999 s přesností 100 nanosekund
datum Slouží pouze k uložení data. Podporuje rozsah od 1. ledna 0001 do 31. prosince 9999
čas Ukládá čas pouze s přesností 100 nanosekund
časové razítko Ukládá jedinečné číslo, když je vytvořen nebo upraven nový řádek. Hodnota časového razítka je založena na vnitřních hodinách a neodpovídá reálnému času. Každá tabulka může obsahovat pouze proměnnou jednorázového razítka.

SQL Server Jiné datové typy

Sql_variant Používá se pro různé typy dat kromě textu, časového razítka a ntextu. Ukládá až 8000 bajtů dat.
XML Ukládá data ve formátu XML. Maximálně 2 GB.
kurzor Ukládá odkaz na kurzor používaný pro databázové operace.
stůl Ukládá sadu výsledků pro pozdější zpracování.
unikátní identifikátor Ukládá GUID (globálně jedinečný identifikátor).

Datové typy Oracle

Datové typy Oracle String

java xor
CHAR(velikost) Slouží k uložení znakových dat v rámci předem definované délky. Může být uloženo až 2000 bajtů.
NCHAR(velikost) Používá se k ukládání dat národního charakteru v rámci předem definované délky. Může být uloženo až 2000 bajtů.
VARCHAR2(velikost) Slouží k ukládání dat proměnného řetězce v rámci předem definované délky. Může být uloženo až 4000 bajtů.
VARCHAR(VELIKOST) Je to stejné jako VARCHAR2 (velikost). Můžete také použít VARCHAR (velikost), ale doporučuje se použít VARCHAR2 (velikost)
NVARCHAR2 (velikost) Používá se k ukládání dat řetězce Unicode v rámci předem definované délky. Musíme zadat velikost datového typu NVARCHAR2. Může být uloženo až 4000 bajtů.

Numerické datové typy Oracle

NUMBER(p, s) Obsahuje přesnost p a stupnici s. Přesnost p se může pohybovat od 1 do 38 a měřítko s se může pohybovat od -84 do 127.
FLOAT (p) Je to podtyp datového typu NUMBER. Přesnost p se může pohybovat od 1 do 126.
BINARY_FLOAT Používá se pro binární přesnost (32 bitů). Vyžaduje 5 bajtů, včetně bajtu délky.
BINARY_DOUBLE Používá se pro dvojitou binární přesnost (64 bitů). Vyžaduje 9 bajtů, včetně bajtu délky.

Oracle Date and Time Data Types

DATUM Slouží k uložení platného formátu data a času s pevnou délkou. Jeho rozsah se pohybuje od 1. ledna 4712 př. n. l. do 31. prosince 9999 našeho letopočtu.
ČASOVÉ RAZÍTKO Slouží k uložení platného data ve formátu RRRR-MM-DD s časem hh:mm:ss.

Datové typy velkých objektů Oracle (typy LOB)

KAPKA Používá se ke specifikaci nestrukturovaných binárních dat. Jeho rozsah je až 232-1 bajt nebo 4 GB.
BFILE Slouží k ukládání binárních dat do externího souboru. Jeho rozsah je až 232-1 bajt nebo 4 GB.
KLOB Používá se pro jednobajtová znaková data. Jeho rozsah je až 232-1 bajt nebo 4 GB.
NCLOB Používá se ke specifikaci dat jednobajtové nebo vícebajtové národní znakové sady (NCHAR) s pevnou délkou. Jeho rozsah je do 232-1 bajt nebo 4 GB.
RAW (velikost) Používá se ke specifikaci nezpracovaných binárních dat proměnné délky. Jeho rozsah je až 2000 bajtů na řádek. Musí být uvedena jeho maximální velikost.
DLOUHÝ RAW Používá se ke specifikaci nezpracovaných binárních dat proměnné délky. Jeho rozsah do 231-1 bajt nebo 2 GB na řádek.