Čo je to typ údajov?
Dátový typ je definovaný ako typ údajov, ktoré môže akýkoľvek stĺpec alebo premenná uložiť na serveri MS SQL Server.
Pri vytváraní ľubovoľnej tabuľky alebo premennej okrem zadávania názvu nastavujete aj typ údajov, ktoré sa budú ukladať.
Ako používať dátový typ MS SQL
- Musíte vopred definovať, aký typ údajov môže stĺpec alebo premenná ukladať. Určenie typu údajov tiež obmedzuje používateľa v zadávaní akýchkoľvek neočakávaných alebo neplatných údajov.
- Pamäť môžete efektívne využiť tak, že premennej alebo stĺpcu priradíte vhodný dátový typ, ktorý alokuje iba potrebné množstvo systémovej pamäte pre dáta príslušného stĺpca.
- MS SQL ponúka širokú kategóriu údajových typov podľa potrieb používateľa. Rovnako ako dátum, binárne obrázky atď.
V tomto návode sa dozviete:
- Čo je to typ údajov?
- Ako používať dátový typ MS SQL
- Prečo používať DataTypes?
- Presné numerické
- Približné Numerické
- Dátum a čas
- Reťazce znakov
- Reťazce znakov Unicode
- Binárny reťazec
- Ostatné datové typy
Prečo používať DataTypes?
Zoberme si ukážku jednoduchej stránky registrácie webovej aplikácie. Tri vstupné polia sú Meno, Priezvisko a Kontaktné číslo.
Tu by sme si mali uvedomiť, že v reálnom čase:
- „Meno / Priezvisko“ bude vždy abecedné .
- „Kontakt“ bude vždy číselný .
- Z vyššie uvedeného obrázka stojí za to definovať „Meno / Priezvisko“ ako znak a „ Kontakt“ ako celé číslo .
Je zrejmé, že v každej aplikácii obsahujú všetky polia jeden alebo druhý typ údajov. Napríklad číselné, abecedné, dátumové a mnoho ďalších.
Nezabudnite, že odlišný dátový typ má rozdielne požiadavky na pamäť. Preto má zmysel definovať stĺpec alebo premennú s dátovým typom, ktorý bude obsahovať pre efektívne využitie pamäte.
Dátový typ dostupný v MS SQL
MS SQL server podporuje nasledujúce kategórie dátových typov:
- Presné číselné
- Približné číselné
- Dátum a čas
- Reťazce znakov
- Reťazce znakov Unicode
- Binárne reťazce
- Ostatné typy údajov

Presné numerické
Presná číselná hodnota má deväť typov subdatových typov. Presné číselné typy údajov
Dátový typ | Popis | Nižší limit | Horná hranica | Pamäť |
---|---|---|---|---|
bigint | Ukladá celé čísla v danom rozsahu | −2 63 (−9 223 372, 036 854 775 808) | 2 63-1 (−9 223 372, 036 854 775 807) | 8 bajtov |
int | Ukladá celé čísla v danom rozsahu | −2 31 (−2 147, 483 648) | 2 31−1 (−2 147, 483 647) | 4 bajty |
smallint | Ukladá celé čísla v danom rozsahu | −2 15 (−32 767) | 2 15 (-32 768) | 2 bajty |
tinyint | Ukladá celé čísla v danom rozsahu | 0 | 255 | 1 bajt |
trocha | Môže mať hodnotu 0, 1 alebo NULL. | 0 | 1 | 1 bajtový / 8bitový stĺpec |
desatinný | Používa sa na stupnice a čísla s pevnou presnosťou | -10 38 + 1 | 10 381-1 | 5 až 17 bajtov |
číselný | Používa sa na stupnice a čísla s pevnou presnosťou | -10 38 + 1 | 10 381-1 | 5 až 17 bajtov |
peniaze | Použité peňažné údaje | -922 337, 203, 685 477,5808 | +922 337 203 685 477 5807 | 8 bajtov |
malé peniaze | Použité peňažné údaje | -214 478,3648 | +214 478 3664 | 4 bajty |
Príklady:
Dopyt:
DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int
Výstup: 2
Syntax: Desatinné (P, S)
Tu,
- P je presnosť
- S je mierka
Dopyt:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31PRINT @Datatype_Decimal
Výstup: 2,31
Približné Numerické
Približná číselná kategória obsahuje pohyblivú rádovú čiarku a skutočné hodnoty. Väčšinou sa používajú pri vedeckých výpočtoch. Približný typ číselných údajov
Dátový typ | Popis | Nižší limit | Horná hranica | Pamäť | Presnosť |
---|---|---|---|---|---|
plavák (n) | Používa sa na plávajúce číslo presnosti | -1,79E + 308 | 1,79E + 308 | Závisí od hodnoty n | 7 číslic |
reálny | Používa sa na plávajúce číslo presnosti | -3,40 E + 38 | 3,40E + 38 | 4 bajty | 15 číslic |
Syntax: FLOAT [(n)]
Tu je n počet bitov, ktoré sa používajú na uloženie mantisy čísla float vo vedeckej notácii. Štandardne je hodnota n 53.
Keď používateľ definuje dátový typ ako float, n by mala byť hodnota od 1 do 53.
SQL Server považuje n za jednu z dvoch možných hodnôt. Ak 1 <= n <= 24, n sa považuje za 24. Ak 25 <= n <= 53, n sa považuje za 53.
Príklad dotazu:
DECLARE @Datatype_Float FLOAT(24) = 22.1234PRINT @Datatype_Float
Výstup: 22.1234
Dátum a čas
Ukladá údaje typu Dátum a čas. Typ údajov dátumu a času
Dátový typ | Popis | Veľkosť úložiska | Presnosť | Nižší rozsah | Horný rozsah |
---|---|---|---|---|---|
Dátum Čas | Používa sa na zadanie dátumu a času od 1. januára 1753 do 31. decembra 9999. Má presnosť 3,33 milisekundy. | 8 bajtov | Zaokrúhlené na prírastky 0,000, 0,003, 0,007 | 1753-01-01 | 9999-12-31 |
smalldatetime | Používa sa na zadanie dátumu a času od 1. januára 0001 do 31. decembra 9999. Má presnosť 100 nanosekúnd | 4 bajty, pevné | 1 minútu | 1900-01-01 | 2079-06-06 |
dátum | Slúži na uchovávanie iba od 1. januára 0001 do 31. decembra 9999 | 3 bajty, pevné | 1 deň | 0001-01-01 | 9999-12-31 |
čas | Používa sa na ukladanie iba časových hodnôt s presnosťou na 100 nanosekúnd. | 5 bajtov | 100 nanosekúnd | 00: 00: 00,0000000 | 23: 59: 59,9999999 |
datetimeoffset | Podobné ako dátový čas, ale má posun v časovom pásme | 10 bajtov | 100 nanosekúnd | 0001-01-01 | 9999-12-31 |
datetime2 | Používa sa na zadanie dátumu a času od 1. januára 0001 do 31. decembra 9999 | 6 bajtov | 100 nanosekúnd | 0001-01-01 | 9999-12-31 |
Príklad dotazu:
DECLARE @Datatype_Date DATE = '2030-01-01'PRINT @Datatype_Date
Výstup: „2030-01-01“
Reťazce znakov
Táto kategória súvisí s typom znaku. Umožňuje užívateľovi definovať dátový typ znaku, ktorý môže mať pevnú a premenlivú dĺžku. Má štyri druhy dátových typov. Dátové typy reťazcov znakov
Dátový typ | Popis | Nižší limit | Horná hranica | Pamäť |
---|---|---|---|---|
char | Je to reťazec znakov s pevnou šírkou. Uloží maximálne 8 000 znakov. | 0 znakov | 8000 znakov | n bajtov |
varchar | Toto je reťazec znakov s premenlivou šírkou | 0 znakov | 8000 znakov | n bajtov + 2 bajty |
varchar (max) | Toto je reťazec znakov s premenlivou šírkou. Ukladá maximálne 1 073 741 824 znakov. | 0 znakov | 2 31 znakov | n bajtov + 2 bajty |
text | Toto je reťazec znakov s premenlivou šírkou. Ukladá maximálne 2 GB textových údajov. | 0 znakov | 2 147 483 647 znakov | n bajtov + 4 bajty |
Príklad dotazu:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype'PRINT @Datatype_Char
Výstup: Toto je dátový typ znaku
Reťazce znakov Unicode
Táto kategória ukladá celú škálu znakov Unicode, ktorá využíva kódovanie znakov UTF-16. Dátové typy reťazcov znakov Unicode
Dátový typ | Popis | Nižší limit | Horná hranica | Pamäť |
---|---|---|---|---|
nchar | Je to reťazec Unicode s pevnou šírkou | 0 znakov | 4 000 znakov | 2 krát n bajtov |
nvarchar | Je to reťazec unicode s premenlivou šírkou | 0 znakov | 4 000 znakov | 2-krát n bajtov + 2 bajty |
ntext | Je to reťazec unicode s premenlivou šírkou | 0 znakov | 1 073 741 823 char | 2-násobok dĺžky šnúrky |
Príklad dotazu:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'PRINT @Datatype_nChar
Výstup: Toto je nCharacter Datatype
Binárny reťazec
Táto kategória obsahuje binárny reťazec pevnej a variabilnej dĺžky. Binárne reťazcové dátové typy
Dátový typ | Popis | Nižší limit | Horná hranica | Pamäť |
---|---|---|---|---|
binárne | Je to binárny reťazec s pevnou šírkou. Ukladá maximálne 8 000 bajtov. | 0 bajtov | 8000 bajtov | n bajtov |
varbinárne | Toto je binárny reťazec premenlivej šírky. Ukladá maximálne 8 000 bajtov | 0 bajtov | 8000 bajtov | Skutočná dĺžka zadaných údajov + 2 bajty |
obrázok | Toto je binárny reťazec premenlivej šírky. Ukladá sa maximálne 2 GB. | 0 bajtov | 2 147 483 647 bajtov |
Príklad dotazu:
DECLARE @Datatype_Binary BINARY(2) = 12;PRINT @Datatype_Binary
Výstup: 0x000C
Ostatné datové typy
Toto sú ďalšie rôzne typy údajov s popisom nižšie -
Dátový typ | Popis |
---|---|
Kurzor | Jeho výstupom je stĺpec sp_cursor_list a sp_describe_cursor. Vráti názov premennej kurzora. |
Riadková verzia | Verzia pečiatkuje riadky tabuľky. |
Hierarchyid | Tento dátový typ predstavuje pozíciu v hierarchii |
Jedinečný identifikátor | Konverzia z znakového výrazu. |
Sql_variant | Ukladá hodnoty dátových typov podporovaných serverom SQL. |
XML | Ukladá údaje XML do stĺpca. |
Typ priestorovej geometrie | Predstavuje údaje v plochom súradnicovom systéme. |
Typ priestorovej geografie | Predstavuje údaje v súradnicovom systéme Zem. |
stôl | Ukladá množinu výsledkov na neskoršie spracovanie. |
Zaujímavosti!
- Dátový typ CHAR je pri načítaní údajov rýchlejší ako VARCHAR.
Zhrnutie:
- Každý stĺpec v tabuľkách sa pri vytváraní tabuľky definuje svojím údajovým typom.
- Existuje šesť hlavných kategórií a jedna ďalšia kategória. Ostatné rôzne služby majú k dispozícii deväť podkategórií dátových typov.