SQL Server -tietotyypit ja esimerkkejä
Mikä on tietotyyppi?
A Tietotyyppi SQL-palvelimessa on määritelty tietotyypiksi, jonka mikä tahansa sarake tai muuttuja voi tallentaa. Se on tietotyyppi, jota objekti sisältää, kuten kokonaisluku, merkki, merkkijono jne. Kun luot mitä tahansa taulukkoa tai muuttujaa, määrität nimen lisäksi myös sen tallennettavan tietotyypin.
Kuinka käyttää MS SQL -tietotyyppiä
- Sinun on määritettävä etukäteen, minkälaisia tietoja sarake tai muuttuja voi tallentaa. Tietotyypin määrittäminen estää myös käyttäjää syömästä odottamattomia tai virheellisiä tietoja.
- Voit käyttää muistia tehokkaasti määrittämällä muuttujalle tai sarakkeelle sopivan tietotyypin, joka varaa vain tarvittavan määrän järjestelmämuistia vastaavan sarakkeen tiedoille.
- MS SQL tarjoaa laajan luokan perustietotyyppejä SQL:ssä käyttäjän tarpeiden mukaan, kuten päivämäärä, binaarikuvat jne.
Miksi käyttää tietotyyppejä?
Otetaan esimerkki yksinkertaisesta Rekisteröidy sivu Kolme syöttökenttää ovat etunimi, sukunimi ja yhteysnumero.
Tässä on syytä huomata, että reaaliajassa:
- "Etunimi Sukunimi" tulee aina olemaan aakkosellinen.
- "Ottaa yhteyttä" tulee aina olemaan numeerinen.
- Yllä olevasta kuvasta se kannattaa määritellä "Etunimi Sukunimi" kuten merkki ja "Ottaa yhteyttä" kuin kokonaisluku.
On selvää, että missä tahansa sovelluksessa kaikissa kentissä on yhden tai toisen tyyppistä tietoa. Esim. numerot, aakkoset, päivämäärä ja monet muut.
Huomaa myös, että eri tietotyypeillä on erilaiset muistivaatimukset. Siksi on järkevämpää määritellä sarake tai muuttuja sen tietotyypin kanssa, joka käyttää muistia tehokkaasti.
Tietotyyppi saatavilla MS SQL Serverissä
Tässä on MS SQL -palvelimen tietotyyppiluettelo:
MS SQL -palvelin tukee seuraavia tietotyyppiluokkia:
- Tarkka numeerinen
- Likimääräinen numeerinen
- Päivämäärä ja aika
- Merkkijonot
- Unicode-merkkijonot
- Binaariset merkkijonot
- Muut tietotyypit
Tarkat numeeriset tietotyypit SQL:ssä
Tarkalla numeerisella on yhdeksän tyyppistä alitietotyyppiä SQL-palvelimessa.
Tarkat numeeriset tietotyypit
Tietotyyppi | Tuotetiedot | Alaraja | Yläraja | Muisti |
---|---|---|---|---|
bigint | Se tallentaa kokonaislukuja annetulla alueella | −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 tavua |
int | Se tallentaa kokonaislukuja annetulla alueella | −2^31 (−2,147 483,648 XNUMX, XNUMX XNUMX XNUMX XNUMX) | 2^31−1 (−2,147, 483,647) | 4 tavua |
pieni | Se tallentaa kokonaislukuja annetulla alueella | −2^15 (−32,767 XNUMX) | 2^15 (−32,768 XNUMX) | 2 tavua |
pikkuinen | Se tallentaa kokonaislukuja annetulla alueella | 0 | 255 | 1 tavua |
bit | Se voi ottaa arvoja 0, 1 tai NULL. | 0 | 1 | 1 tavu / 8 bitin sarake |
desimaalin | Käytetään mittakaavassa ja kiinteissä tarkkuusnumeroissa | −10^38+1 | 10^381−1 | 5-17 tavua |
numeerinen | Käytetään mittakaavassa ja kiinteissä tarkkuusnumeroissa | −10^38+1 | 10^381−1 | 5-17 tavua |
raha | Käytetyt rahatiedot | -922,337, 203, 685,477.5808 | +922,337 203, 685,477.5807, XNUMX XNUMX XNUMX | 8 tavua |
pientä rahaa | Käytetyt rahatiedot | -214,478.3648 | + 214,478.3647 | 4 tavua |
Tarkat numeeriset tietotyypit SQL-palvelin esimerkkien kanssa:
kysely:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
ulostulo
2
Syntaksi
Desimaali (P,S)
Täällä
- P on tarkkuus
- S on mittakaava
kysely:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31 PRINT @Datatype_Decimal
ulostulo
2.31
Likimääräiset numeeriset tietotyypit SQL:ssä
SQL Likimääräinen numeerinen luokka sisältää liukuluku- ja reaaliarvot. Näitä SQL:n tietotyyppejä käytetään enimmäkseen tieteellisissä laskelmissa.
Likimääräinen numeerinen tietotyyppi
Tietotyyppi | Tuotetiedot | Alaraja | Yläraja | Muisti | Tarkkuus |
---|---|---|---|---|---|
kellua(n) | Käytetään kelluvaan tarkkuuslukuun | −1.79E+308 | 1.79 308 + | Riippuu n:n arvosta | 7 Digit |
todellinen | Käytetään kelluvaan tarkkuuslukuun | −3.40E+38 | 3.40 38 + | 4 tavua | 15 Digit |
Syntax: FLOAT [(n)]
Täällä n on bittien lukumäärä, joita käytetään tallentamaan mantissa kellua numero tieteellisessä merkinnässä. Oletusarvoisesti n:n arvo on 53.
Kun käyttäjä määrittää tietotyypin, kuten float, n arvon tulee olla välillä 1–53.
SQL Server käsittelee n yhtenä kahdesta mahdollisesta arvosta. Jos 1<=n<=24, n:tä käsitellään 24:nä. Jos 25<=n<=53, n:tä käsitellään 53:na.
Esimerkkikysely:
DECLARE @Datatype_Float FLOAT(24) = 22.1234 PRINT @Datatype_Float
ulostulo
22.1234
Päivämäärä- ja aikatietotyypit SQL:ssä
Se tallentaa päivämäärän ja kellonajan tyyppisiä tietoja.
Päivämäärä ja aika Tietotyyppi
Tietotyyppi | Tuotetiedot | Varastokoko | tarkkuus | Alempi alue | Upper Range |
---|---|---|---|---|---|
Päivämäärä ja aika | Käytetään päivämäärän ja ajan määrittämiseen 1. tammikuuta 1753 - 31. joulukuuta 9999. Sen tarkkuus on 3.33 millisekuntia. | 8 tavua | Pyöristetty .000, .003, .007 tarkkoihin | 1753-01-01 | 9999-12-31 |
pieni päivämäärä | Käytetään päivämäärän ja ajan määrittämiseen 1. tammikuuta 0001 ja 31. joulukuuta 9999 välisenä aikana. Sen tarkkuus on 100 nanosekuntia | 4 tavua, kiinteä | 1 minuutti | 1900-01-01 | 2079-06-06 |
data | Käytettiin vain päivämäärän säilyttämiseen 1–0001 | 3 tavua, kiinteä | Yhden päivän | 0001-01-01 | 9999-12-31 |
aika | Käytetään vain aika-arvojen tallentamiseen 100 nanosekunnin tarkkuudella. | 5 tavua | 100 nanosekuntia | 00:00:00.0000000 | 23:59:59.9999999 |
datetimeoffset | Samanlainen kuin dataaika, mutta siinä on aikavyöhykepoikkeama | 10 tavua | 100 nanosekuntia | 0001-01-01 | 9999-12-31 |
päivämäärä2 | Käytetään päivämäärän ja ajan määrittämiseen 1. tammikuuta 0001 - 31. joulukuuta 9999 | 6 tavua | 100 nanosekuntia | 0001-01-01 | 9999-12-31 |
Esimerkkikysely:
DECLARE @Datatype_Date DATE = '2030-01-01' PRINT @Datatype_Date
ulostulo
'2030-01-01'
Merkkijonojen tietotyypit SQL:ssä
Tämä luokka liittyy hahmotyyppiin. Sen avulla käyttäjä voi määrittää merkin tietotyypin, joka voi olla kiinteä ja muuttuvapituinen. Siinä on neljä erilaista tietotyyppiä. Alla on merkkijonon SQL-palvelimen tietotyypit esimerkkeineen.
Merkkijonojen tietotyypit
Tietotyyppi | Tuotetiedot | Alaraja | Yläraja | Muisti |
---|---|---|---|---|
sotavaunut | Se on merkkijono, jolla on kiinteä leveys. Se tallentaa enintään 8,000 XNUMX merkkiä. | 0 merkkiä | 8000 merkkiä | n tavua |
Varchar | Tämä on merkkijono, jonka leveys vaihtelee | 0 merkkiä | 8000 merkkiä | n tavua + 2 tavua |
varchar (max) | Tämä on merkkijono, jonka leveys vaihtelee. Se tallentaa enintään 1,073,741,824 XNUMX XNUMX XNUMX merkkiä. | 0 merkkiä | 2^31 merkkiä | n tavua + 2 tavua |
teksti | Tämä on merkkijono, jonka leveys vaihtelee. Se tallentaa enintään 2 Gt tekstidataa. | 0 merkkiä | 2,147,483,647 merkkiä | n tavua + 4 tavua |
Esimerkkikysely:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype' PRINT @Datatype_Char
ulostulo
Tämä on merkkitietotyyppi
Unicode-merkkijonojen tietotyypit SQL:ssä
Tämä luokka tallentaa täyden valikoiman Unicode-merkkejä, jotka käyttävät UTF-16-merkkikoodausta.
Unicode-merkkijonotietotyypit
Tietotyyppi | Tuotetiedot | Alaraja | Yläraja | Muisti |
---|---|---|---|---|
nchar | Se on Unicode-merkkijono, jonka leveys on kiinteä | 0 merkkiä | 4000 merkkiä | 2 kertaa n tavua |
nvarchar | Se on unicode-merkkijono, jonka leveys vaihtelee | 0 merkkiä | 4000 merkkiä | 2 kertaa n tavua + 2 tavua |
ntext | Se on unicode-merkkijono, jonka leveys vaihtelee | 0 merkkiä | 1,073,741,823 merkkiä | 2 kertaa nauhan pituus |
Esimerkkikysely:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype' PRINT @Datatype_nChar
ulostulo
Tämä on nCharacter Datatype
Binäärimerkkijonotietotyypit SQL:ssä
Tämä luokka sisältää kiinteän ja muuttuvan pituisen binäärijonon.
Binäärimerkkijonotietotyypit
Tietotyyppi | Tuotetiedot | Alaraja | Yläraja | Muisti |
---|---|---|---|---|
binaarinen | Se on kiinteä leveä binäärimerkkijono. Se tallentaa enintään 8,000 XNUMX tavua. | 0 tavua | 8000 tavua | n tavua |
varbinaarinen | Tämä on binäärimerkkijono, jonka leveys vaihtelee. Se tallentaa enintään 8,000 XNUMX tavua | 0 tavua | 8000 tavua | Syötettyjen tietojen todellinen pituus + 2 tavua |
kuva | Tämä on binäärimerkkijono, jonka leveys vaihtelee. Se tallentaa enintään 2 Gt. | 0 tavua | 2,147,483,647 tavua |
Esimerkkikysely:
DECLARE @Datatype_Binary BINARY(2) = 12; PRINT @Datatype_Binary
ulostulo
0x000C
Muut tietotyypit SQL:ssä
Nämä ovat muita erilaisia SQL-palvelintietotyyppejä, joiden kuvaus on alla-
Tietotyyppi | Tuotetiedot |
---|---|
Kohdistin | Sen tulos on sarake sp_cursor_list ja sp_describe_cursor. Se palauttaa kohdistimen muuttujan nimen. |
Rivi versio | Se versio leimaa taulukon rivejä. |
Hierarkidi | Tämä tietotyyppi edustaa asemaa hierarkiassa |
Yksilöllinen tunniste | Muunnos merkkilauseesta. |
Sql_variant | Se tallentaa SQL-palvelimen tukemien tietotyyppien arvot. |
XML | Se tallentaa XML-tiedot sarakkeeseen. |
Tilageometrian tyyppi | Se edustaa dataa tasaisessa koordinaattijärjestelmässä. |
Tilamaantieteen tyyppi | Se edustaa dataa maan pyöreässä koordinaattijärjestelmässä. |
taulukko | Se tallentaa tulosjoukon myöhempää käsittelyä varten. |
Mielenkiintoisia seikkoja!
- CHAR-tietotyyppi on nopeampi kuin SQL VARCHAR -tietotyyppi, kun tietoja haetaan.
Yhteenveto
- Jokainen taulukon sarake määritellään tietotyypeillään taulukon luonnin aikana.
- Pääkategorioita on kuusi ja yksi muu sekalainen luokka. Muilla sekalaisilla on yhdeksän alaluokkaa SQL-palvelin saatavilla olevat tietotyypit ja -koot.