Dátové typy servera SQL: Varchar, Numeric, Date Time (príklady T-SQL)

Obsah:

Anonim

Č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
Datové typy MSQL

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.