SQL Serveri andmetüübid: Varchar, Numeric, Date Time (T-SQL-i näited)

Lang L: none (table-of-contents):

Anonim

Mis on andmetüüp?

Datatype defineeritakse tüüpi andmeid, mis tahes veeru või muutuva mahutab MS SQL Server.

Mis tahes tabeli või muutuja loomisel määrate lisaks nime täpsustamisele ka andmete tüübi, mida see salvestab.

Kuidas kasutada MS SQL-i andmetüüpi

  • Peate eelnevalt määratlema, millist tüüpi andmeid veerg või muutuja saab salvestada. Andmetüübi määramine piirab ka kasutajat ootamatute või kehtetute andmete sisestamisel.
  • Mälu saab tõhusalt kasutada, määrates muutujale või veerule sobiva andmetüübi, mis eraldab vastava veeru andmetele ainult vajaliku hulga süsteemimälu.
  • MS SQL pakub laia kategooriat andmetüüpi vastavalt kasutaja vajadustele. Nagu kuupäev, binaarkujutised jne.

Selles õpetuses saate teada:

  • Mis on andmetüüp?
    • Kuidas kasutada MS SQL-i andmetüüpi
  • Miks kasutada DataTypes?
    • Täpne numbriline
    • Ligikaudne numbriline
    • Päev ja aeg
    • Märgistringid
    • Unicode'i märgistringid
    • Binaarne string
    • Muud andmetüübid

Miks kasutada DataTypes?

Võtame näite veebisaidi rakenduse lihtsast registreerumislehest . Kolm sisestusvälja on eesnimi, perekonnanimi ja kontakttunnus.

Siinkohal peaksime märkima, et reaalajas:

  • "Ees / perekonnanimi" on alati tähestikuline .
  • "Kontakt" on alati numbriline .

  • Alates ülaltoodud pildil väärt määratlemisel "Eesnimi / perekonnanimi" kui iseloomu ja " Kontakt" kui täisarv .

On ilmne, et mis tahes rakenduses on kõigil väljadel üht või teist tüüpi andmeid. Nt numbriline, tähestikuline, kuupäev ja palju muud.

Pange tähele ka seda, et erinevatel andmetüüpidel on erinev mälunõue. Seetõttu on mõttekam veerg või muutuja määratleda selle andmetüübiga, mis talle mälu tõhusaks kasutamiseks sobib.

Andmetüüp on saadaval MS SQL-is

MS SQL server toetab järgmisi andmetüübi kategooriaid:

  • Täpne numbriline
  • Ligikaudne numbriline
  • Päev ja aeg
  • Märgistringid
  • Unicode'i märgistringid
  • Binaarsed stringid
  • Muud andmetüübid
MSQL-i andmetüübid

Täpne numbriline

Täpsel numbril on üheksa tüüpi alamandmete tüüpe. Täpsed numbrilised andmetüübid

Andmetüüp Kirjeldus Madalam limiit Ülemine piir Mälu
bigint See salvestab täisarvud antud vahemikku −2 63 (−9 223 372, 036 854 775 808) 2 63-1 (−9,223,372, 036,854,775,807) 8 baiti
int See salvestab täisarvud antud vahemikku −2 31 (−2,147, 483,648) 2 31-1 (−2,147, 483,647) 4 baiti
väike See salvestab täisarvud antud vahemikku −2 15 (−32 767) 2 15 (−32 768) 2 baiti
tinyint See salvestab täisarvud antud vahemikku 0 255 1 bait
natuke Selleks võib kuluda 0, 1 või NULL. 0 1 1 bait / 8-bitine veerg
kümnendkoht Kasutatakse skaala ja fikseeritud täpsusega numbrite jaoks −10 38 + 1 10 381−1 5–17 baiti
numbriline Kasutatakse skaala ja fikseeritud täpsusega numbrite jaoks −10 38 + 1 10 381−1 5–17 baiti
raha Kasutatud rahalised andmed −922,337, 203, 685,477,5808 +922,337, 203, 685,477,5807 8 baiti
väikeraha Kasutatud rahalised andmed −214 478,3648 +214 478 3664 4 baiti

Näited:

Päring:

DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int

Väljund: 2

Süntaks: kümnendkoht (P, S)

Siin,

  • P on täpsus
  • S on skaala

Päring:

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

Väljund: 2.31

Ligikaudne numbriline

Ligikaudne arvkategooria sisaldab ujukoma ja tegelikke väärtusi. Neid kasutatakse enamasti teaduslikes arvutustes. Ligikaudne arvandmete tüüp

Andmetüüp Kirjeldus Madalam limiit Ülemine piir Mälu Täpsus
ujuk (n) Kasutatakse ujuva täpsusnumbri jaoks -1,79E + 308 1,79E + 308 Sõltub n väärtusest 7 numbrit
päris Kasutatakse ujuva täpsusnumbri jaoks −3,40E + 38 3.40E + 38 4 baiti 15 numbrit
Syntax: FLOAT [(n)] 

Siin n on bittide arv, mida kasutatakse salvestada mantissi on float number teaduskuju. Vaikimisi on n väärtus 53.

Kui kasutaja määratleb sellist tüüpi andmetüübi nagu ujuk, peaks n väärtus olema vahemikus 1 kuni 53.

SQL Server käsitleb n ühte kahest võimalikust väärtusest. Kui 1 <= n <= 24, käsitletakse n kui 24. Kui 25 <= n <= 53, siis käsitletakse n kui 53.

Näite päring:

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

Väljund: 22.1234

Päev ja aeg

See salvestab kuupäeva ja kellaaja tüüpi andmeid. Kuupäeva ja kellaaja andmetüüp

Andmetüüp Kirjeldus Hoidla suurus Täpsus Madalam vahemik Ülemine vahemik
Kuupäev Kellaaeg Kasutatakse kuupäeva ja kellaaja määramiseks 1. jaanuarist 1753 kuni 31. detsembrini 9999. Selle täpsus on 3,33 millisekundit. 8 baiti Ümardatud sammudeni .000, .003, .007 1753-01-01 9999-12-31
smalldatetime Kasutatakse kuupäeva ja kellaaja määramiseks 1. jaanuarist 0001 kuni 31. detsembrini 9999. Selle täpsus on 100 nanosekundit 4 baiti, fikseeritud 1 minut 1900-01-01 2079-06-06
kuupäev Kasutatakse ainult kuupäevaks 1. jaanuar 0001 kuni 31. detsember 9999 3 baiti, fikseeritud 1 päev 0001-01-01 9999-12-31
aeg Kasutatakse ainult aja väärtuste salvestamiseks täpsusega 100 nanosekundit. 5 baiti 100 nanosekundit 00: 00: 00.0000000 23: 59: 59.9999999
kuupäeva nihe Sarnane kuupäevaajaga, kuid sellel on ajavööndi nihe 10 baiti 100 nanosekundit 0001-01-01 9999-12-31
kuupäevaaeg2 Kasutatakse kuupäeva ja kellaaja määramiseks 1. jaanuarist 0001 kuni 31. detsembrini 9999 6 baiti 100 nanosekundit 0001-01-01 9999-12-31

Näite päring:

DECLARE @Datatype_Date DATE = '2030-01-01'PRINT @Datatype_Date

Väljund: '2030-01-01'

Märgistringid

See kategooria on seotud tähemärgi tüübiga. See võimaldab kasutajal määratleda fikseeritud ja muutuva pikkusega märgi andmetüübi. Sellel on nelja tüüpi andmetüüpe. Märgistringide andmetüübid

Andmetüüp Kirjeldus Madalam limiit Ülemine piir Mälu
char See on kindla laiusega märgistring. See salvestab maksimaalselt 8000 tähemärki. 0 tähemärki 8000 tähemärki n baiti
varchar See on muutuva laiusega märgistring 0 tähemärki 8000 tähemärki n baiti + 2 baiti
varchar (max) See on muutuva laiusega märgistring. See salvestab maksimaalselt 1 073 741 824 tähemärki. 0 tähemärki 2 31 tähemärki n baiti + 2 baiti
tekst See on muutuva laiusega märgistring. See salvestab maksimaalselt 2 GB tekstiandmeid. 0 tähemärki 2 147 483 647 tähemärki n baiti + 4 baiti

Näite päring:

DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype'PRINT @Datatype_Char

Väljund: see on märgi andmebaasi tüüp

Unicode'i märgistringid

Sellesse kategooriasse salvestatakse kogu Unicode'i tähemärkide vahemik, mis kasutab UTF-16 märgikodeeringut. Unicode'i märgistringi andmetüübid

Andmetüüp Kirjeldus Madalam limiit Ülemine piir Mälu
nchar See on fikseeritud laiusega Unicode string 0 tähemärki 4000 tähemärki 2 korda n baiti
nvarchar See on muutumatu laiusega unicode string 0 tähemärki 4000 tähemärki 2 korda n baiti + 2 baiti
ntext See on muutumatu laiusega unicode string 0 tähemärki 1 073 741 823 süsinikku 2-kordne stringi pikkus

Näite päring:

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

Väljund: see on nCharacteri andmetüüp

Binaarne string

See kategooria sisaldab fikseeritud ja muutuva pikkusega binaarstringi. Binaarstringide andmetüübid

Andmetüüp Kirjeldus Madalam limiit Ülemine piir Mälu
binaarne See on fikseeritud laiusega kahendstring. See salvestab maksimaalselt 8000 baiti. 0 baiti 8000 baiti n baiti
varbinaarne See on muutuva laiusega binaarne string. See salvestab maksimaalselt 8000 baiti 0 baiti 8000 baiti Sisestatud andmete tegelik pikkus + 2 baiti
pilt See on muutuva laiusega binaarne string. See salvestab maksimaalselt 2 GB. 0 baiti 2 147 483 647 baiti

Näite päring:

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

Väljund: 0x000C

Muud andmetüübid

Need on muud erinevad andmetüübid koos allpool toodud kirjeldusega-

Andmetüüp Kirjeldus
Kursor Selle väljund on veerud sp_cursor_list ja sp_describe_cursor. See tagastab kursori muutuja nime.
Rea versioon Selle versioon tembeldab tabeliread.
Hierarhidiid See andmetüüp tähistab positsiooni hierarhias
Unikaalne identifikaator Teisendamine märgiväljendist.
Sql_variant See salvestab SQL serveri toetatud andmetüüpide väärtused.
XML See salvestab veerus XML-andmeid.
Ruumigeomeetria tüüp See tähistab andmeid kindlas koordinaatsüsteemis.
Ruumigeograafia tüüp See tähistab andmeid ümmarguse maa koordinaatide süsteemis.
tabel See salvestab tulemuste komplekti hilisemaks töötlemiseks.

Huvitavaid fakte!

  • Andmetüüp CHAR on andmete hankimisel kiirem kui VARCHAR.

Kokkuvõte:

  • Iga tabelite veerg määratleb tabeli loomisel oma andmetüübiga.
  • Seal on kuus peamist kategooriat ja üks muu mitmesugune kategooria. Muudel mitmesugustel on saadaval üheksa andmetüüpide alamkategooriat.