Datové typy serveru SQL: Varchar, Numeric, Date Time (příklady T-SQL)

Obsah:

Anonim

Co je datový typ?

Datový typ je definován jako typ dat, který může libovolný sloupec nebo proměnná uložit na MS SQL Server.

Při vytváření libovolné tabulky nebo proměnné kromě určení názvu také nastavíte typ dat, která bude ukládat.

Jak používat datový typ MS SQL

  • Musíte předem definovat, jaký typ dat může sloupec nebo proměnná ukládat. Určení datového typu také omezuje uživatele v zadávání jakýchkoli neočekávaných nebo neplatných dat.
  • Paměť můžete efektivně využít přidělením příslušného datového typu proměnné nebo sloupci, který přidělí pouze požadované množství systémové paměti pro data příslušného sloupce.
  • MS SQL nabízí širokou kategorii datového typu podle potřeb uživatele. Jako datum, binární obrázky atd.

V tomto výukovém programu se naučíte:

  • Co je datový typ?
    • Jak používat datový typ MS SQL
  • Proč používat DataTypes?
    • Přesné číselné
    • Přibližné číselné
    • Datum a čas
    • Řetězce znaků
    • Řetězce znaků Unicode
    • Binární řetězec
    • Jiné datové typy

Proč používat DataTypes?

Podívejme se na ukázku jednoduché stránky Registrace webové aplikace. Tři vstupní pole jsou Jméno, Příjmení a Kontaktní číslo.

Zde bychom měli poznamenat, že v reálném čase:

  • „Jméno / příjmení“ bude vždy abecední .
  • „Kontakt“ bude vždy číselný .

  • Z obrázku nahoře stojí za to definovat „Jméno / Příjmení“ jako znak a Kontakt“ jako celé číslo .

Je zřejmé, že v jakékoli aplikaci mají všechna pole jeden nebo druhý typ dat. Např. Číselné, abecední, datum a mnoho dalších.

Všimněte si také, že různé datové typy mají různé požadavky na paměť. Proto má větší smysl definovat sloupec nebo proměnnou s datovým typem, který bude obsahovat pro efektivní využití paměti.

Datový typ dostupný v MS SQL

MS SQL server podporuje následující kategorie datového typu:

  • Přesné číselné
  • Přibližné číselné
  • Datum a čas
  • Řetězce znaků
  • Řetězce znaků Unicode
  • Binární řetězce
  • Další datové typy
Datové typy MSQL

Přesné číselné

Přesná numerická má devět typů sub-datových typů. Přesné číselné datové typy

Datový typ Popis Spodní limit Horní limit Paměť
bigint Ukládá celá čísla v uvedeném rozsahu −2 63 (−9 223 372, 036 854 775 808) 2 63-1 (−9 223 372, 036 854 775 807) 8 bytů
int Ukládá celá čísla v uvedeném rozsahu −2 31 (−2 147, 483 648) 2 31-1 (−2 147, 483 647) 4 byty
smallint Ukládá celá čísla v uvedeném rozsahu −2 15 (−32 767) 2 15 (-32 768) 2 bajty
maličký Ukládá celá čísla v uvedené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 381-1 5 až 17 bajtů
číselný Používá se pro měřítko a čísla s pevnou přesností -10 38 + 1 10 381-1 5 až 17 bajtů
peníze Použité peněžní údaje -922 337, 203, 685 477,5808 +922 337 203 685 477 5807 8 bytů
malé peníze Použité peněžní údaje -214 478,3648 +214 478 3647 4 byty

Příklady:

Dotaz:

DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int

Výstup: 2

Syntaxe: Desetinná (P, S)

Tady,

  • P je přesnost
  • S je měřítko

Dotaz:

DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31PRINT @Datatype_Decimal

Výstup: 2.31

Přibližné číselné

Přibližná číselná kategorie zahrnuje plovoucí desetinnou čárku a skutečné hodnoty. Většinou se používají ve vědeckých výpočtech. Přibližný číselný datový typ

Datový typ Popis Spodní limit Horní limit Paměť Přesnost
float (n) Používá se pro plovoucí přesné číslo -1,79 E + 308 1,79E + 308 Závisí na hodnotě n 7 číslic
nemovitý Používá se pro plovoucí přesné číslo -3,40 E + 38 3,40 E + 38 4 byty 15 číslic
Syntax: FLOAT [(n)] 

Zde n je počet bitů, které se používají k uložení mantisy čísla float ve vědecké notaci. Ve výchozím nastavení je hodnota n 53.

Když uživatel definuje datový typ jako 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 je považováno za 24. Pokud 25 <= n <= 53, n je považováno za 53.

Příklad dotazu:

DECLARE @Datatype_Float FLOAT(24) = 22.1234PRINT @Datatype_Float

Výstup: 22.1234

Datum a čas

Ukládá data typu Datum a čas. Datový typ data a času

Datový typ Popis Velikost úložiště Přesnost Nižší 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 milisekund. 8 bytů Zaokrouhleno na přírůstky 0,000, 0,003, 0,007 1753-01-01 9999-12-31
malý čas Používá se k určení data a času od 1. ledna 0001 do 31. prosince 9999. Má přesnost 100 nanosekund 4 bajty, opraveno 1 minuta 1900-01-01 2079-06-06
datum Slouží 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 Slouží k ukládání pouze časových hodnot s přesností na 100 nanosekund. 5 bajtů 100 nanosekund 00: 00: 00,0000000 23: 59: 59,9999999
datetimeoffset Podobně jako datatime, ale má posun časového pásma 10 bajtů 100 nanosekund 0001-01-01 9999-12-31
datetime2 Slouží k 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ů

Tato kategorie souvisí s typem postavy. Umožňuje uživateli definovat datový typ znaku, který může mít pevnou a proměnnou délku. Má čtyři druhy datových typů. Datové typy řetězců znaků

Datový typ Popis Spodní limit Horní limit Paměť
char Jedná se o řetězec znaků s pevnou šířkou. Ukládá maximálně 8 000 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 řetězec znaků s proměnnou šířkou. Ukládá maximálně 1 073 741 824 znaků. 0 znaků 2 31 znaků n bajtů + 2 bajty
text 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 znaků

Řetězce znaků Unicode

Tato kategorie ukládá celou škálu znaků Unicode, která používá kódování znaků UTF-16. Datové typy znakových řetězců Unicode

Datový typ Popis Spodní limit Horní limit Paměť
nchar Jedná se o řetězec Unicode pevné šířky 0 znaků 4000 znaků 2 krát n bajtů
nvarchar Jedná se o unicode řetězec proměnné šířky 0 znaků 4000 znaků 2krát n bajtů + 2 bajty
ntext Jedná se o unicode řetězec proměnné šířky 0 znaků 1073 741 823 znaků 2násobek délky řetězce

Příklad dotazu:

DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'PRINT @Datatype_nChar

Výstup: Toto je datový typ nCharacter

Binární řetězec

Tato kategorie obsahuje binární řetězec pevné a proměnné délky. Binární řetězce datových typů

Datový typ Popis Spodní limit Horní limit Paměť
binární Je to binární řetězec s pevnou šířkou. Ukládá maximálně 8 000 bajtů. 0 bajtů 8000 bajtů n bajtů
varbinary Toto je binární řetězec proměnné šířky. Ukládá maximálně 8 000 bajtů 0 bajtů 8000 bajtů Skutečná délka zadaných dat + 2 bajty
obraz Toto je binární řetězec proměnné šířky. Ukládá maximálně 2 GB. 0 bajtů 2 147 483 647 bajtů

Příklad dotazu:

DECLARE @Datatype_Binary BINARY(2) = 12;PRINT @Datatype_Binary

Výstup: 0x000C

Jiné datové typy

Jedná se o další různé datové typy s níže uvedeným popisem-

Datový typ Popis
Kurzor Jeho výstupem je sloupec sp_cursor_list a sp_describe_cursor. Vrátí název proměnné kurzoru.
Řádková verze Verze orazítkuje řádky tabulky.
Hierarchyid Tento datový typ představuje pozici v hierarchii
Unikátní identifikátor Převod z výrazu znaků.
Sql_variant Ukládá hodnoty datových typů podporovaných serverem SQL.
XML Ukládá data XML 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 Země.
stůl Ukládá sadu výsledků pro pozdější zpracování.

Zajímavosti!

  • Datový typ CHAR je při načítání dat rychlejší než VARCHAR.

Souhrn:

  • Každý sloupec v tabulkách se při vytváření tabulky definuje svým datovým typem.
  • Existuje šest hlavních kategorií a jedna další různá kategorie. Ostatní různé mají k dispozici devět podkategorií datových typů.