Kas yra duomenų tipas?
Duomenų tipas apibrėžiamas kaip duomenų, kuriuos bet kuris stulpelis ar kintamasis gali saugoti „MS SQL Server“, tipas.
Kuriant bet kokią lentelę ar kintamąjį, be vardo nurodymo, jūs taip pat nustatote duomenų tipą, kurį jis išsaugos.
Kaip naudoti MS SQL duomenų tipą
- Turite iš anksto apibrėžti, kokio tipo duomenis gali išsaugoti stulpelis ar kintamasis. Duomenų tipo nustatymas taip pat draudžia vartotojui įvesti netikėtus ar neteisingus duomenis.
- Galite efektyviai naudoti atmintį, priskirdami kintamajam ar stulpeliui tinkamą duomenų tipą, kuris atitinkamo stulpelio duomenims skirs tik reikiamą sistemos atminties kiekį.
- MS SQL siūlo platų duomenų tipų kategoriją pagal vartotojo poreikius. Kaip data, dvejetainiai vaizdai ir kt.
Šioje pamokoje sužinosite:
- Kas yra duomenų tipas?
- Kaip naudoti MS SQL duomenų tipą
- Kodėl naudoti DataTypes?
- Tiksli skaitinė
- Apytikslis skaitinis
- Data ir laikas
- Simbolių eilutės
- „Unicode“ simbolių eilutės
- Dvejetainė eilutė
- Kiti duomenų tipai
Kodėl naudoti DataTypes?
Paimkime paprasto svetainės programos Prisiregistravimo puslapio pavyzdį. Trys įvesties laukai yra vardas, pavardė ir kontaktinis numeris.
Čia turėtume atkreipti dėmesį, kad realiuoju laiku:
- „Vardas / pavardė“ visada bus abėcėlės tvarka .
- „Kontaktas“ visada bus skaitinis .
- Iš aukščiau pateikto paveikslėlio verta apibrėžti „Vardas / pavardė“ kaip simbolį, o „ Kontaktas“ - kaip sveikąjį skaičių .
Akivaizdu, kad bet kurioje programoje visuose laukuose yra vieno ar kito tipo duomenys. Pvz., Skaitiniai, abėcėlės, datos ir daug daugiau.
Taip pat atkreipkite dėmesį, kad skirtingiems duomenų tipams reikalingi skirtingi atminties reikalavimai. Todėl prasmingiau apibrėžti stulpelį ar kintamąjį su duomenų tipu, kuris bus naudojamas efektyviam atminties naudojimui.
Duomenų tipas galimas MS SQL
MS SQL serveris palaiko šias duomenų tipo kategorijas:
- Tikslus skaitmeninis
- Apytikslis skaitinis
- Data ir laikas
- Simbolių eilutės
- Unicode simbolių eilutės
- Dvejetainės eilutės
- Kiti duomenų tipai
Tiksli skaitinė
Tikslus skaitmuo turi devynis subduomenų tipus. Tikslūs skaitiniai duomenų tipai
Duomenų tipas | apibūdinimas | Apatinė riba | Viršutinis limitas | Atmintis |
---|---|---|---|---|
bigint | Jis saugo sveikus skaičius nurodytame diapazone | −2 63 (−9,223,372, 036,854,775,808) | 2 63−1 (−9,223,372, 036,854,775,807) | 8 baitai |
tarpt | Jis saugo sveikus skaičius nurodytame diapazone | −2 31 (−2,147, 483,648) | 2 31−1 (−2,147, 483,647) | 4 baitai |
smallint | Jis saugo sveikus skaičius nurodytame diapazone | −2 15 (−32 767) | 2 15 (−32 768) | 2 baitai |
tinyint | Jis saugo sveikus skaičius nurodytame diapazone | 0 | 255 | 1 baitas |
šiek tiek | Tai gali užimti 0, 1 arba NULL reikšmes. | 0 | 1 | 1 baitų / 8 bitų stulpelis |
po kablelio | Naudojamas masteliams ir fiksuoto tikslumo skaičiams | −10 38 + 1 | 10 381−1 | 5–17 baitų |
skaitinis | Naudojamas masteliams ir fiksuoto tikslumo skaičiams | −10 38 + 1 | 10 381−1 | 5–17 baitų |
pinigų | Panaudoti piniginiai duomenys | −922,337, 203, 685,477,5808 | +922,337, 203, 685,477,5807 | 8 baitai |
mažasis pinigėlis | Panaudoti piniginiai duomenys | −214 478,3648 | +214 478 3664 | 4 baitai |
Pavyzdžiai:
Užklausa:
DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int
Išvestis: 2
Sintaksė: dešimtainis (P, S)
Čia
- P yra tikslumas
- S yra mastelis
Užklausa:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31PRINT @Datatype_Decimal
Rezultatas: 2.31
Apytikslis skaitinis
Apytikslė skaitinė kategorija apima slankiojo kablelio ir tikrąsias reikšmes. Jie dažniausiai naudojami atliekant mokslinius skaičiavimus. Apytikslis skaitmeninis duomenų tipas
Duomenų tipas | apibūdinimas | Apatinė riba | Viršutinis limitas | Atmintis | Tikslumas |
---|---|---|---|---|---|
plūdė (n) | Naudojamas plaukiojančiam tikslumo skaičiui | -1,79E + 308 | 1,79E + 308 | Priklauso nuo n vertės | 7 skaitmenų |
tikras | Naudojamas plaukiojančiam tikslumo skaičiui | –3,40E + 38 | 3.40E + 38 | 4 baitai | 15 skaitmenų |
Syntax: FLOAT [(n)]
Čia n yra bitų, naudojamų plūdinio skaičiaus mantisai saugoti , mokslinis žymėjimas. Pagal numatytuosius nustatymus n vertė yra 53.
Kai vartotojas apibrėžia duomenų tipą, pvz., „Float“, n reikšmė turėtų būti nuo 1 iki 53.
„SQL Server“ traktuoja n kaip vieną iš dviejų galimų reikšmių. Jei 1 <= n <= 24, n traktuojamas kaip 24. Jei 25 <= n <= 53, n laikomas 53.
Užklausos pavyzdys:
DECLARE @Datatype_Float FLOAT(24) = 22.1234PRINT @Datatype_Float
Išvestis: 22.1234
Data ir laikas
Jame saugomi tipo ir datos duomenys. Datos ir laiko duomenų tipas
Duomenų tipas | apibūdinimas | Saugyklos dydis | Tikslumas | Žemesnis diapazonas | Aukštutinis diapazonas |
---|---|---|---|---|---|
DateTime | Naudojamas nurodant datą ir laiką nuo 1753 m. Sausio 1 d. Iki 9999 m. Gruodžio 31 d. Jo tikslumas yra 3,33 milisekundės. | 8 baitai | Suapvalinta iki .000, .003, .007 žingsnių | 1753-01-01 | 9999-12-31 |
smalldatetime | Naudojamas nurodant datą ir laiką nuo 0001 m. Sausio 1 d. Iki 9999 m. Gruodžio 31 d. Jo tikslumas yra 100 nanosekundžių | 4 baitai, fiksuoti | 1 minutę | 1900-01-01 | 2079-06-06 |
data | Naudota tik saugoti datą nuo 0001 m. Sausio 1 d. Iki 9999 m. Gruodžio 31 d | 3 baitai, fiksuoti | 1 diena | 0001-01-01 | 9999-12-31 |
laikas | Naudojamas tik laiko vertėms saugoti 100 nanosekundžių tikslumu. | 5 baitai | 100 nanosekundžių | 00: 00: 00.0000000 | 23: 59: 59.9999999 |
datetimeoffset | Panašus į duomenų laiką, tačiau turi laiko juostos poslinkį | 10 baitų | 100 nanosekundžių | 0001-01-01 | 9999-12-31 |
datos laikas2 | Naudojamas nurodant datą ir laiką nuo 0001 m. Sausio 1 d. Iki 9999 m. Gruodžio 31 d | 6 baitai | 100 nanosekundžių | 0001-01-01 | 9999-12-31 |
Užklausos pavyzdys:
DECLARE @Datatype_Date DATE = '2030-01-01'PRINT @Datatype_Date
Išvestis: „2030-01-01“
Simbolių eilutės
Ši kategorija yra susijusi su simbolių tipu. Tai leidžia vartotojui nustatyti simbolio, kuris gali būti fiksuoto ir kintamo ilgio, duomenų tipą. Jame yra keturių rūšių duomenys. Simbolių eilutės duomenų tipai
Duomenų tipas | apibūdinimas | Apatinė riba | Viršutinis limitas | Atmintis |
---|---|---|---|---|
char | Tai fiksuoto pločio simbolių eilutė. Joje saugoma daugiausia 8000 simbolių. | 0 simbolių | 8000 simbolių | n baitų |
varcharas | Tai kintamo pločio simbolių eilutė | 0 simbolių | 8000 simbolių | n baitai + 2 baitai |
varcharas (maks.) | Tai kintamo pločio simbolių eilutė. Joje saugoma daugiausia 1 073 741 824 simboliai. | 0 simbolių | 2 31 simboliai | n baitai + 2 baitai |
tekstas | Tai kintamo pločio simbolių eilutė. Joje saugoma ne daugiau kaip 2 GB teksto duomenų. | 0 simbolių | 2 147 483 647 simboliai | n baitai + 4 baitai |
Užklausos pavyzdys:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype'PRINT @Datatype_Char
Išvestis: Tai simbolių duomenų tipas
„Unicode“ simbolių eilutės
Ši kategorija saugo visą „Unicode“ simbolių diapazoną, kuriame naudojamas UTF-16 simbolių kodavimas. „Unicode“ simbolių eilutės duomenų tipai
Duomenų tipas | apibūdinimas | Apatinė riba | Viršutinis limitas | Atmintis |
---|---|---|---|---|
ncharas | Tai fiksuoto pločio „Unicode“ eilutė | 0 simbolių | 4000 simbolių | 2 kartus n baitų |
nvarcharas | Tai kintamo pločio unicode eilutė | 0 simbolių | 4000 simbolių | 2 kartus n baitai + 2 baitai |
ntekstas | Tai kintamo pločio unicode eilutė | 0 simbolių | 1 073 741 823 char | 2 kartus didesnis už stygos ilgį |
Užklausos pavyzdys:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'PRINT @Datatype_nChar
Išvestis: Tai nCharacter duomenų tipas
Dvejetainė eilutė
Šioje kategorijoje yra fiksuoto ir kintamo ilgio dvejetainė eilutė. Dvejetainių eilučių duomenų tipai
Duomenų tipas | apibūdinimas | Apatinė riba | Viršutinis limitas | Atmintis |
---|---|---|---|---|
dvejetainis | Tai fiksuoto pločio dvejetainė eilutė. Joje saugoma daugiausia 8000 baitų. | 0 baitų | 8000 baitų | n baitų |
kintamasis | Tai yra kintamo pločio dvejetainė eilutė. Joje saugoma daugiausia 8000 baitų | 0 baitų | 8000 baitų | Faktinis įvestų duomenų ilgis + 2 baitai |
vaizdas | Tai yra kintamo pločio dvejetainė eilutė. Joje saugoma daugiausia 2 GB. | 0 baitų | 2 147 483 647 baitai |
Užklausos pavyzdys:
DECLARE @Datatype_Binary BINARY(2) = 12;PRINT @Datatype_Binary
Išvestis: 0x000C
Kiti duomenų tipai
Tai yra kiti skirtingi duomenų tipai, kurių aprašymas pateiktas žemiau-
Duomenų tipas | apibūdinimas |
---|---|
Žymeklis | Jo išvestis yra sp_cursor_list ir sp_describe_cursor stulpeliai. Jis grąžina žymeklio kintamojo pavadinimą. |
Eilės versija | Jo versija antspauduoja lentelių eilutes. |
Hierarchyidas | Šis duomenų tipas nurodo poziciją hierarchijoje |
Unikalus identifikatorius | Konversija iš simbolio išraiškos. |
Sql_variant | Jame saugomos SQL serverio palaikomų duomenų tipų vertės. |
XML | Jis saugo XML duomenis stulpelyje. |
Erdvinės geometrijos tipas | Tai rodo duomenis plokščioje koordinačių sistemoje. |
Erdvinės geografijos tipas | Tai rodo duomenis apvaliosios žemės koordinačių sistemoje. |
stalo | Jame saugomas rezultatų rinkinys, skirtas vėliau apdoroti. |
Įdomūs faktai!
- Gaunant duomenis CHAR duomenų tipas yra greitesnis nei VARCHAR.
Santrauka:
- Kiekvienas lentelių stulpelis apibrėžia savo duomenų tipą kuriant lentelę.
- Yra šešios pagrindinės kategorijos ir viena kita įvairi kategorija. Kiti įvairūs turi devynias duomenų tipų subkategorijas.