SQL Serveri andmetüübid koos näidetega
⚡ Nutikas kokkuvõte
SQL Serveri andmetüübid määravad, millist tüüpi väärtusi veerg või muutuja saab salvestada, näiteks täisarv, kümnend-, märgi-, kuupäeva- või kahendsüsteem. Õige tüübi valimine tagab kehtivate andmete esitamise ja kasutab mälu tõhusalt.

Mis on andmetüüp?
Andmetüüp MS SQL Server on defineeritud kui andmetüüp, mida mis tahes veerg või muutuja saab salvestada. See on andmetüüp, mida objekt hoiab, näiteks täisarv, märk või string. Mis tahes loomisel tabel or muutujaLisaks nime määramisele saate määrata ka salvestatavate andmete tüübi.
Kuidas kasutada MS SQL andmetüüpi
Veerg või muutuja peab eelnevalt määratlema andmetüübi, mida see salvestada saab. Andmetüübi määramine piirab ka kasutaja poolt ootamatute või sobimatute andmete sisestamist.
Mälu saab tõhusalt kasutada, määrates muutujale või veerule sobiva andmetüübi, mis eraldab selle veeru andmete jaoks ainult vajaliku hulga süsteemimälu.
MS SQL pakub laia valikut põhilisi andmetüüpe SQL vastavalt kasutaja vajadustele, näiteks kuupäev, binaarfailid, pildid ja palju muud.
Miks kasutada andmetüüpe?
Vaatleme lihtsa veebirakenduse registreerimislehe näidet. Kolm sisestusvälja on eesnimi, perekonnanimi ja kontaktnumber.
Siinkohal peaksime märkima, et reaalsetes olukordades:
- „Ees-/perekonnanimi” on alati tähestikulises järjekorras.
- „Kontakt” on alati numbriline.
Allolev näide illustreerib neid välju registreerumisvormil.
Ülaltoodud pildilt on mõistlik defineerida „Ees-/perekonnanimi“ tähemärgina ja „Kontakt“ täisarvuna.
On ilmne, et igas rakenduses on kõigil väljadel üht või teist tüüpi andmed, näiteks numbrilised, tähestikulised, kuupäevalised ja palju muud.
Samuti pange tähele, et erinevatel andmetüüpidel on erinevad mälunõuded. Seetõttu on mälu tõhusaks kasutamiseks mõistlikum defineerida veerg või muutuja andmetüübi järgi, mida see 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
Allolev diagramm rühmitab MS SQL Serveri andmetüübid nendesse kategooriatesse.
Täpsed numbrilised andmetüübid SQL-is
Täpsel numbrilisel tüübil on SQL Serveris üheksa alamandmetüüpi. Igaüks neist salvestab täis- või fikseeritud komaarvud määratletud vahemikus.
| 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) | 2^63−1 (32 767) | 8 baiti |
| int | See salvestab täisarvud antud vahemikus | −2^31 (−2,147,483,648 XNUMX) | 2^31−1 (32 767) | 4 baiti |
| smallint | See salvestab täisarvud antud vahemikus | −2^15 (−32,768 XNUMX) | 2^15−1 (32 767) | 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^38−1 | 5 kuni 17 baiti |
| arv- | Kasutatakse skaala ja fikseeritud täppisnumbrite jaoks | −10^38+1 | 10^38−1 | 5 kuni 17 baiti |
| raha | Kasutatakse rahaliste andmete jaoks | -922,337,203,685,477.5808 | + 922,337,203,685,477.5807 | 8 baiti |
| väike raha | Kasutatakse rahaliste andmete jaoks | -214,478.3648 | + 214,478.3647 | 4 baiti |
Täpsed numbrilised andmetüübid SQL Serveris koos näidetega:
Päring:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
Väljund:
2
süntaksit:
Decimal (P,S)
Siin on P täpsus ja S 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-i ligikaudsete numbriliste andmete kategooria hõlmab ujukoma- ja reaalväärtusi. Neid andmetüüpe kasutatakse enamasti teaduslikes arvutustes.
| 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 | 15-kohaline |
| reaalne | Kasutatakse ujuva täppisarvu jaoks | −3.40E+38 | 3.40 + 38 | 4 baiti | 7-kohaline |
Ujuktüüpi puhul kasutatakse järgmist süntaksit:
Syntax: FLOAT [(n)]
Siin on n teaduslikus tähistuses ujukomaarvu mantissi salvestamiseks kasutatavate bittide arv. Vaikimisi on n väärtus 53.
Kui defineerite andmetüübi, näiteks float, peaks n olema väärtus vahemikus 1 kuni 53. SQL Server käsitleb n-i ü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 kategooria salvestab kuupäeva ja kellaaja tüüpi andmeid.
| 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 1900 kuni 6. juunini 2079. Selle täpsus on 1 minut. | 4 baiti, fikseeritud | 1 minuti | 1900-01-01 | 2079-06-06 |
| andmed | Kasutatakse 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 ajaväärtuste salvestamiseks täpsusega 100 nanosekundit. | 5 baiti | 100 XNUMX XNUMX nanosekundit | 00:00:00.0000000 | 23:59:59.9999999 |
| datetimeoffset | Sarnane kuupäeva ja kellaajaga, aga 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üüpidega. See võimaldab teil määratleda fikseeritud ja muutuva pikkusega märgiandmeid. Sellel on neli tüüpi andmetüüpe. Allpool on toodud märgistringi andmetüübid koos näidetega.
| 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ärgijada. | 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ärgijada. 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 talletab kõik Unicode'i tähemärgid, mis kasutavad UTF-16 kodeeringut.
| 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'i string. | 0 tähemärki | 4000 tähemärki | 2 korda n baiti + 2 baiti |
| ntekst | See on muutuva laiusega Unicode'i string. | 0 tähemärki | 1,073,741,823 tähemärki | 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 binaarstringe.
| Andmetüüp | Kirjeldus | Madalam limiit | Ülemine piir | Mälu |
|---|---|---|---|---|
| binaarne | See on fikseeritud laiusega binaarstring. See mahutab maksimaalselt 8,000 baiti. | 0 baiti | 8000 baiti | n baiti |
| varbinaarne | See on muutuva laiusega binaarjada. See mahutab maksimaalselt 8,000 baiti. | 0 baiti | 8000 baiti | Sisestatud andmete tegelik pikkus + 2 baiti |
| pilt | See on muutuva laiusega binaarjada. 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 SQL Serveri andmetüübid koos allpool toodud kirjeldustega:
| Andmetüüp | Kirjeldus |
|---|---|
| Kursor | Selle väljundiks on veerg, mis koosneb nii sp_cursor_list kui ka sp_describe_cursor muutujatest. Tagastab kursori muutuja nime. |
| Rowversioon | See lisab tabeli ridadele versioonitempli. |
| Hierarhiid | See andmetüüp esindab positsiooni hierarhias. |
| Unikaalne identifikaator | Salvestab GUID-i, mis on sageli teisendatud märgiavaldisest. |
| Sql_variant | See salvestab SQL Serveri toetatud andmetüüpide väärtusi. |
| 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 hankimisel kiirem kui VARCHAR-andmetüüp, kuna selle fikseeritud laius väldib pikkusega seotud tühikute arvutamist.ping.


