SQL Server datové typy s příklady
⚡ Chytré shrnutí
Datové typy SQL Serveru definují typ hodnoty, kterou může sloupec nebo proměnná ukládat, například celé číslo, desetinné číslo, znak, datum nebo binární číslo. Výběr správného typu vynucuje platná data a efektivně využívá paměť.

Co je datový typ?
Datový typ v MS SQL Server je definován jako typ dat, který může ukládat jakýkoli sloupec nebo proměnná. Je to druh dat, která objekt uchovává, například celé číslo, znak nebo řetězec. Při vytváření libovolného tabulka or proměnlivýKromě zadání názvu také nastavíte typ dat, která se budou ukládat.
Jak používat datový typ MS SQL
Typ dat, která může sloupec nebo proměnná ukládat, je nutné definovat předem. Určení datového typu také omezuje uživatele v zadávání neočekávaných nebo neplatných dat.
Paměť můžete efektivně využít přiřazením vhodného datového typu proměnné nebo sloupci, čímž se pro data daného sloupce alokuje pouze požadované množství systémové paměti.
MS SQL nabízí širokou škálu základních datových typů. SQL aby vyhovovaly potřebám uživatelů, jako je datum, binární soubor, obrázky a další.
Proč používat DataTypes?
Vezměme si příklad jednoduché registrační stránky pro webovou aplikaci. Tři vstupní pole jsou Jméno, Příjmení a Kontaktní číslo.
Zde je třeba poznamenat, že v reálných situacích:
- „Jméno/Příjmení“ bude vždy abecední.
- „Kontakt“ bude vždy číselný.
Níže uvedený příklad ilustruje tato pole na registračním formuláři.
Z výše uvedeného obrázku je jasné, že „Jméno/Příjmení“ bude definováno jako znak a „Kontakt“ jako celé číslo.
Je zřejmé, že v jakékoli aplikaci všechna pole obsahují jeden nebo jiný typ dat, například číselná, abecední, datumová a mnoho dalších.
Také si uvědomte, že různé datové typy mají různé požadavky na paměť. Proto je pro efektivní využití paměti rozumnější definovat sloupec nebo proměnnou s datovým typem, který bude obsahovat.
Datový typ dostupný v MS SQL Server
Zde je seznam datových typů MS SQL Serveru. MS SQL Server podporuje následující kategorie datových typů:
- Přesné číselné
- Přibližné číselné
- Datum a čas
- Řetězce znaků
- Znakové řetězce Unicode
- Binární řetězce
- Jiné datové typy
Níže uvedený diagram seskupuje datové typy MS SQL Serveru do těchto kategorií.
Přesné číselné datové typy v SQL
Přesné číselné typy mají v SQL Serveru devět podtypů dat. Každý z nich ukládá celá čísla nebo čísla s pevnou desetinnou čárkou v definovaném rozsahu.
| Datový typ | Description | Spodní limit | Horní mez | Memory |
|---|---|---|---|---|
| bigint | Ukládá celá čísla v daném rozsahu | −2^63 (−9,223,372,036,854,775,808 XNUMX) | 2^63−1 (32 767) | 8 bytů |
| int | Ukládá celá čísla v daném rozsahu | −2^31 (−2,147,483,648 XNUMX) | 2^31−1 (32 767) | 4 bytů |
| smallint | Ukládá celá čísla v daném rozsahu | −2^15 (−32,768 XNUMX) | 2^15−1 (32 767) | 2 bytů |
| tinyint | Ukládá celá čísla v daném rozsahu | 0 | 255 | 1 bajtů |
| bit | Může nabývat hodnot 0, 1 nebo NULL. | 0 | 1 | 1 bajt / 8bitový sloupec |
| desetinný | Používá se pro měřítko a čísla s pevnou přesností | −10^38+1 | 10^38−1 | 5 až 17 bajtů |
| numeric | Používá se pro měřítko a čísla s pevnou přesností | −10^38+1 | 10^38−1 | 5 až 17 bajtů |
| peníze | Používá se pro měnová data | -922,337,203,685,477.5808 | +922,337,203,685,477.5807 | 8 bytů |
| malé peníze | Používá se pro měnová data | -214,478.3648 | +214,478.3647 | 4 bytů |
Přesné číselné datové typy v SQL Serveru s příklady:
Dotaz:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
Výstup:
2
Syntaxe:
Decimal (P,S)
Zde P představuje přesnost a S je měřítko.
Dotaz:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31 PRINT @Datatype_Decimal
Výstup:
2.31
Přibližné číselné datové typy v SQL
Kategorie přibližných čísel v SQL zahrnuje čísla s plovoucí desetinnou čárkou a reálná čísla. Tyto datové typy se většinou používají ve vědeckých výpočtech.
| Datový typ | Description | Spodní limit | Horní mez | Memory | Přesnost |
|---|---|---|---|---|---|
| plovoucí (n) | Používá se pro číslo s plovoucí přesností | −1.79E+308 | 1.79E + 308 | Závisí na hodnotě n | 15 číslice |
| skutečný | Používá se pro číslo s plovoucí přesností | −3.40E+38 | 3.40E + 38 | 4 bytů | 7 číslice |
Typ float používá následující syntaxi:
Syntax: FLOAT [(n)]
Zde je n počet bitů použitých k uložení mantisy čísla s desetinnou čárkou ve vědeckém zápisu. Výchozí hodnota n je 53.
Pokud definujete datový typ, jako je float, n by měla být hodnota mezi 1 a 53. SQL Server považuje n za jednu ze dvou možných hodnot: pokud 1 <=n <=24, n se považuje za 24; pokud 25 <=n <=53, n se považuje za 53.
Příklad dotazu:
DECLARE @Datatype_Float FLOAT(24) = 22.1234 PRINT @Datatype_Float
Výstup:
22.1234
Datové typy data a času v SQL
Tato kategorie ukládá data typu datum a čas.
| Datový typ | Description | Velikost úložiště | Přesnost | Dolní rozsah | Horní rozsah |
|---|---|---|---|---|---|
| Čas schůzky | Používá se k určení data a času od 1. ledna 1753 do 31. prosince 9999. Má přesnost 3.33 milisekundy. | 8 bytů | Zaokrouhleno na přírůstky 000, 003, 007 | 1753-01-01 | 9999-12-31 |
| malé datum a čas | Používá se k zadání data a času od 1. ledna 1900 do 6. června 2079. Má přesnost 1 minutu. | 4 bajty, opraveno | 1 minut | 1900-01-01 | 2079-06-06 |
| datum | Používá se k uložení pouze data od 1. ledna 0001 do 31. prosince 9999 | 3 bajty, opraveno | 1 den | 0001-01-01 | 9999-12-31 |
| čas | Používá se pouze pro ukládání časových hodnot s přesností 100 nanosekund. | 5 bytů | 100 nanosekund | 00:00:00.0000000 | 23:59:59.9999999 |
| datum a čas offset | Podobné jako datetime, ale má posun v časovém pásmu | 10 bytů | 100 nanosekund | 0001-01-01 | 9999-12-31 |
| datum a čas2 | Používá se pro zadání data a času od 1. ledna 0001 do 31. prosince 9999 | 6 bytů | 100 nanosekund | 0001-01-01 | 9999-12-31 |
Příklad dotazu:
DECLARE @Datatype_Date DATE = '2030-01-01' PRINT @Datatype_Date
Výstup:
'2030-01-01'
Řetězce znaků Datové typy v SQL
Tato kategorie se týká typů znaků. Umožňuje definovat znaková data pevné a proměnné délky. Má čtyři druhy datových typů. Níže jsou uvedeny datové typy řetězců znaků s příklady.
| Datový typ | Description | Spodní limit | Horní mez | Memory |
|---|---|---|---|---|
| spálit | Je to řetězec znaků s pevnou šířkou. Ukládá maximálně 8,000 XNUMX znaků. | 0 znaků | 8000 znaků | n bajtů |
| varchar | Toto je řetězec znaků s proměnnou šířkou. | 0 znaků | 8000 znaků | n bajtů + 2 bajty |
| varchar (max.) | Toto je znakový řetězec s proměnnou šířkou. Ukládá maximálně 1,073,741,824 XNUMX XNUMX XNUMX znaků. | 0 znaků | 2^31 znaků | n bajtů + 2 bajty |
| (souhrnně „Stránka (Stránky)“), a naše postupy pro shromažďování, využívání, uchovávání, ochranu a zpřístupnění takových informací. Tyto zásady platí pro informace, které shromažďujeme na těchto stránkách nebo v e-mailu, textových a jiných elektronických zprávách mezi vámi a těmito stránkami. Rovněž popisují vaše možnosti týkající se využívání vašich osobních údajů, přístupu k nim a jejich opravě. | Toto je řetězec znaků s proměnnou šířkou. Ukládá maximálně 2 GB textových dat. | 0 znaků | 2,147,483,647 znaků | n bajtů + 4 bajty |
Příklad dotazu:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype' PRINT @Datatype_Char
Výstup:
Toto je datový typ znaku
Znakové řetězce Unicode Datové typy v SQL
Tato kategorie ukládá celou řadu znaků Unicode, které používají kódování znaků UTF-16.
| Datový typ | Description | Spodní limit | Horní mez | Memory |
|---|---|---|---|---|
| nchar | Je to řetězec Unicode s pevnou šířkou. | 0 znaků | 4000 znaků | 2 krát n bajtů |
| nvarchar | Je to řetězec Unicode s proměnnou šířkou. | 0 znaků | 4000 znaků | 2 krát n bajtů + 2 bajty |
| ntext | Je to řetězec Unicode s proměnnou šířkou. | 0 znaků | 1,073,741,823 znaků | 2násobek délky struny |
Příklad dotazu:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype' PRINT @Datatype_nChar
Výstup:
Toto je datový typ nCharacter
Datové typy binárních řetězců v SQL
Tato kategorie obsahuje binární řetězce pevné a proměnné délky.
| Datový typ | Description | Spodní limit | Horní mez | Memory |
|---|---|---|---|---|
| dvojitý | Jedná se o binární řetězec s pevnou šířkou. Může uchovávat maximálně 8 000 bajtů. | 0 bytů | 8000 bytů | n bajtů |
| varbinární | Toto je binární řetězec s proměnnou šířkou. Může uchovávat maximálně 8 000 bajtů. | 0 bytů | 8000 bytů | Skutečná délka zadávaných dat + 2 bajty |
| obraz | Toto je binární řetězec s proměnnou šířkou. Maximální velikost je 2 GB. | 0 bytů | 2,147,483,647 bytů | - |
Příklad dotazu:
DECLARE @Datatype_Binary BINARY(2) = 12; PRINT @Datatype_Binary
Výstup:
0x000C
Další datové typy v SQL
Toto jsou další datové typy SQL Serveru s jejich popisem níže:
| Datový typ | Description |
|---|---|
| Kurzor | Jeho výstupem je sloupec sp_cursor_list a sp_describe_cursor. Vrací název proměnné kurzoru. |
| Verze řádků | Označuje řádky tabulky verzí. |
| Hierarchoid | Tento datový typ představuje pozici v hierarchii. |
| Unikátní identifikátor | Ukládá GUID, často převedený ze znakového výrazu. |
| Sql_variant | Ukládá hodnoty datových typů podporovaných SQL Serverem. |
| XML | Ukládá XML data do sloupce. |
| Typ prostorové geometrie | Představuje data v plochém souřadnicovém systému. |
| Typ prostorové geografie | Představuje data v souřadnicovém systému kulaté Země. |
| tabulka | Ukládá sadu výsledků pro pozdější zpracování. |
Zajímavosti!
- Datový typ CHAR je při načítání dat rychlejší než datový typ VARCHAR, protože jeho pevná šířka zabraňuje zkracování délky.ping.


