SQL Serveri andmetüübid koos näidetega
Mis on andmetüüp?
A Andmetüüp SQL serveris on defineeritud kui andmete tüüp, mida iga veerg või muutuja saab salvestada. See on teatud tüüpi andmed, mida objekt sisaldab, nagu täisarv, märk, string jne. Tabeli või muutuja loomisel määrate lisaks nime määramisele ka salvestatavate andmete tüübi.
Kuidas kasutada MS SQL andmetüüpi
- Peate eelnevalt määratlema, millist tüüpi andmeid veerg või muutuja saab salvestada. Andmetüübi määramine piirab ka kasutajal ootamatute või kehtetute andmete sisestamist.
- Saate mälu tõhusalt kasutada, määrates muutujale või veerule sobiva andmetüübi, mis eraldab vastava veeru andmete jaoks ainult vajaliku süsteemimälu.
- MS SQL pakub laia kategooria põhiandmetüüpe SQL-is vastavalt kasutaja vajadustele, nagu kuupäev, binaarpildid jne.
Miks kasutada andmetüüpe?
Võtame näidise lihtsast Registreerumise leht Kolm sisestusvälja on eesnimi, perekonnanimi ja kontaktnumber.
Siin tuleks märkida, et reaalajas:
- "Eesnimi/perekonnanimi" jääb alati tähestikuline.
- „Kontakt” jääb alati arv-.
- Ülaltoodud pildi järgi tasub seda määratleda "Eesnimi/perekonnanimi" kui iseloom ja „Kontakt” nagu täisarv.
On ilmne, et igas rakenduses on kõigil väljadel üht või teist tüüpi andmeid. Nt numbrid, tähestikud, kuupäev ja palju muud.
Samuti pange tähele, et erinevatel andmetüüpidel on erinev mäluvajadus. Seetõttu on mõttekam määratleda veerg või muutuja koos andmetüübiga, mida see mälu tõhusaks kasutamiseks hoiab.
Andmetüüp on saadaval MS SQL Serveris
Siin on MS SQL serveri andmetüüpide loend:
MS SQL server toetab järgmisi andmetüüpide kategooriaid:
- Täpne arv
- Ligikaudne arv
- Kuupäev ja kellaaeg
- Tähemärgi stringid
- Unicode'i märgistringid
- Binaarsed stringid
- Muud andmetüübid
Täpsed numbrilised andmetüübid SQL-is
Täpsel numbril on SQL-serveris üheksa tüüpi alamandmetüüpe.
Täpsed numbrilised andmetüübid
Andmetüüp | Kirjeldus | Madalam limiit | Ülemine piir | Mälu |
---|---|---|---|---|
bigint | See salvestab täisarvud antud vahemikus | −2^63 (−9,223,372 036,854,775,808 XNUMX, XNUMX XNUMX XNUMX XNUMX) | 2^63−1 (−9,223,372, 036,854,775,807) | 8 baiti |
int | See salvestab täisarvud antud vahemikus | −2^31 (−2,147 483,648 XNUMX, XNUMX XNUMX XNUMX XNUMX) | 2^31−1 (−2,147, 483,647) | 4 baiti |
smallint | See salvestab täisarvud antud vahemikus | −2^15 (−32,767 XNUMX) | 2^15 (−32,768 XNUMX) | 2 baiti |
tilluke | See salvestab täisarvud antud vahemikus | 0 | 255 | 1 bait |
natuke | See võib võtta 0, 1 või NULL väärtusi. | 0 | 1 | 1 bait / 8 bitine veerg |
Kümnendkoht | Kasutatakse skaala ja fikseeritud täppisnumbrite jaoks | −10^38+1 | 10^381−1 | 5 kuni 17 baiti |
arv- | Kasutatakse skaala ja fikseeritud täppisnumbrite jaoks | −10^38+1 | 10^381−1 | 5 kuni 17 baiti |
raha | Kasutatud rahalisi andmeid | −922,337, 203, 685,477.5808 | +922,337 203, 685,477.5807, XNUMX XNUMX XNUMX | 8 baiti |
väike raha | Kasutatud rahalisi andmeid | -214,478.3648 | + 214,478.3647 | 4 baiti |
Täpsed numbrilised andmetüübid SQL-server koos näidetega:
Päring:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
Väljund
2
Süntaks
Kümnend (P, S)
Siin
- P on täpsus
- S on skaala
Päring:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31 PRINT @Datatype_Decimal
Väljund
2.31
Ligikaudsed numbrilised andmetüübid SQL-is
SQL Ligikaudne numbrikategooria sisaldab ujukoma ja reaalväärtusi. Neid SQL-i andmetüüpe kasutatakse enamasti teaduslikes arvutustes.
Ligikaudne numbriline andmetüüp
Andmetüüp | Kirjeldus | Madalam limiit | Ülemine piir | Mälu | Täpsus |
---|---|---|---|---|---|
ujuki (n) | Kasutatakse ujuva täppisarvu jaoks | −1.79E+308 | 1.79 + 308 | Sõltub n väärtusest | 7 Digit |
reaalne | Kasutatakse ujuva täppisarvu jaoks | −3.40E+38 | 3.40 + 38 | 4 baiti | 15 Digit |
Syntax: FLOAT [(n)]
Siin n on bittide arv, mida kasutatakse mantissi salvestamiseks ujuk arv teaduslikus tähistuses. Vaikimisi on n väärtus 53.
Kui kasutaja määrab andmetüübi, näiteks float, n peaks olema väärtus vahemikus 1 kuni 53.
SQL Server kohtleb n ühena kahest võimalikust väärtusest. Kui 1<=n<=24, käsitletakse n-i kui 24. Kui 25<=n<=53, käsitletakse n-i kui 53.
Näidispäring:
DECLARE @Datatype_Float FLOAT(24) = 22.1234 PRINT @Datatype_Float
Väljund
22.1234
Kuupäeva ja kellaaja andmetüübid SQL-is
See salvestab kuupäeva ja kellaaja tüüpi andmeid.
Kuupäeva ja kellaaja andmetüüp
Andmetüüp | Kirjeldus | Ladustamise suurus | Täpsus | Alumine 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 |
väike kuupäev | Kasutatakse kuupäeva ja kellaaja määramiseks 1. jaanuarist 0001 kuni 31. detsembrini 9999. Selle täpsus on 100 nanosekundit | 4 baiti, fikseeritud | 1 minuti | 1900-01-01 | 2079-06-06 |
andmed | Kasutatud ainult kuupäeva salvestamiseks 1. jaanuarist 0001 kuni 31. detsembrini 9999 | 3 baiti, fikseeritud | 1 päev | 0001-01-01 | 9999-12-31 |
aeg | Kasutatakse ainult aja väärtuste salvestamiseks 100 nanosekundi täpsusega. | 5 baiti | 100 XNUMX XNUMX nanosekundit | 00:00:00.0000000 | 23:59:59.9999999 |
datetimeoffset | Sarnaselt andmeajale, kuid sellel on ajavööndi nihe | 10 baiti | 100 XNUMX XNUMX 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 XNUMX XNUMX nanosekundit | 0001-01-01 | 9999-12-31 |
Näidispäring:
DECLARE @Datatype_Date DATE = '2030-01-01' PRINT @Datatype_Date
Väljund
'2030-01-01'
SQL-i märgistringide andmetüübid
See kategooria on seotud märgitüübiga. See võimaldab kasutajal määrata märgi andmetüübi, mis võib olla fikseeritud ja muutuva pikkusega. Sellel on nelja tüüpi andmetüüpe. Allpool on toodud märgistringi SQL-serveri andmetüübid koos näidetega.
Tähemärgistringide andmetüübid
Andmetüüp | Kirjeldus | Madalam limiit | Ülemine piir | Mälu |
---|---|---|---|---|
sõjavanker | See on fikseeritud laiusega märgistring. See salvestab maksimaalselt 8,000 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 XNUMX XNUMX XNUMX 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äidispäring:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype' PRINT @Datatype_Char
Väljund
See on tähemärgi andmetüüp
Unicode'i märgistringide andmetüübid SQL-is
See kategooria salvestab kogu Unicode'i märgivaliku, 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'i string | 0 tähemärki | 4000 tähemärki | 2 korda n baiti |
nvarchar | See on muutuva laiusega unicode-string | 0 tähemärki | 4000 tähemärki | 2 korda n baiti + 2 baiti |
ntekst | See on muutuva laiusega unicode-string | 0 tähemärki | 1,073,741,823 sümbolit | 2 korda nööri pikkus |
Näidispäring:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype' PRINT @Datatype_nChar
Väljund
See on nCharacter Datatype
SQL-i kahendstringi andmetüübid
See kategooria sisaldab fikseeritud ja muutuva pikkusega binaarset stringi.
Binaarsete stringide andmetüübid
Andmetüüp | Kirjeldus | Madalam limiit | Ülemine piir | Mälu |
---|---|---|---|---|
binaarne | See on fikseeritud laiusega binaarne string. See salvestab maksimaalselt 8,000 baiti. | 0 baiti | 8000 baiti | n baiti |
varbinaarne | See on muutuva laiusega binaarne string. See salvestab maksimaalselt 8,000 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äidispäring:
DECLARE @Datatype_Binary BINARY(2) = 12; PRINT @Datatype_Binary
Väljund
0x000C
Muud andmetüübid SQL-is
Need on muud erinevad SQL-serveri andmetüübid, mille kirjeldus on allpool-
Andmetüüp | Kirjeldus |
---|---|
Kursor | Selle väljund on veerg sp_kursori_loend ja sp_describe_cursor. Tagastab kursori muutuja nime. |
Rea versioon | See versioon tembeldab tabeli ridu. |
Hierarhiid | 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 XML-andmed veerus. |
Ruumigeomeetria tüüp | See kujutab andmeid lamedas koordinaatsüsteemis. |
Ruumigeograafia tüüp | See esindab andmeid ümara maa koordinaatide süsteemis. |
tabel | See salvestab tulemuste komplekti hilisemaks töötlemiseks. |
Huvitavaid fakte!
- CHAR andmetüüp on andmete toomise ajal kiirem kui SQL VARCHARi andmetüüp.
kokkuvõte
- Iga tabeli veerg määratletakse tabeli loomise ajal oma andmetüübiga.
- Seal on kuus põhikategooriat ja veel üks mitmesugune kategooria. Muudel mitmesugustel toodetel on üheksa alamkategooriat SQL-server saadaolevad andmetüübid ja suurused.