SQL Server adattípusok: Varchar, numerikus, dátum és idő (T-SQL példák)

Tartalomjegyzék:

Anonim

Mi az az adattípus?

Az adattípus az az adattípus , amelyet bármely oszlop vagy változó az MS SQL Serverben tárolhat.

Bármely tábla vagy változó létrehozása során a név megadása mellett beállítja a tárolni kívánt adattípust is.

Az MS SQL adattípusának használata

  • Előre meg kell határoznia, hogy egy oszlop vagy változó milyen típusú adatokat tárolhat. Az adattípus meghatározása szintén korlátozza a felhasználót a váratlan vagy érvénytelen adatok megadásában.
  • Hatékonyan kihasználhatja a memóriát, ha megfelelő adattípust rendel hozzá a változóhoz vagy oszlophoz, amely csak az előírt mennyiségű rendszermemóriát osztja ki az adott oszlop adataihoz.
  • Az MS SQL az adattípus széles kategóriáját kínálja a felhasználó igényeinek megfelelően. Mint a dátum, a bináris képek stb.

Ebben az oktatóanyagban megtudhatja:

  • Mi az az adattípus?
    • Az MS SQL adattípusának használata
  • Miért érdemes használni a DataTypes-t?
    • Pontos numerikus
    • Hozzávetőleges numerikus
    • Dátum és idő
    • Karakterláncok
    • Unicode karakterláncok
    • Bináris húr
    • Egyéb adattípusok

Miért érdemes használni a DataTypes-t?

Vegyünk egy mintát a webhelyalkalmazás egyszerű Feliratkozási oldaláról . Három beviteli mező a Keresztnév, Vezetéknév és Kapcsolattartó száma.

Itt kell megjegyeznünk, hogy valós időben:

  • A "keresztnév" mindig ábécé lesz .
  • A "kapcsolat" mindig numerikus lesz .

  • A fenti kép azt érdemes definiálni „First / Last Name” , mint egy karaktert , és Kapcsolat” , mint egy egész .

Nyilvánvaló, hogy bármely alkalmazásban az összes mező rendelkezik egyik vagy másik típusú adattal. Pl. Numerikus, ábécés, dátum és még sok más.

Vegye figyelembe azt is, hogy a különböző adattípusok memóriaigénye eltérő. Ezért ésszerűbb meghatározni az oszlopot vagy a változót azzal az adattípussal, amely a memória hatékony felhasználása érdekében megmarad.

MS SQL-ben elérhető adattípus

Az MS SQL Server az alábbi adattípus-kategóriákat támogatja:

  • Pontos numerikus
  • Hozzávetőleges numerikus
  • Dátum és idő
  • Karakterláncok
  • Unicode karakterláncok
  • Bináris húrok
  • Egyéb adattípusok
MSQL adattípusok

Pontos numerikus

A pontos numerikusnak kilenc aladattípusa van. Pontos numerikus adattípusok

Adattípus Leírás Alsó határ Felső határ memória
bigint Egész számokat tárol a megadott tartományban −2 63 (−9,223,372, 036,854,775,808) 2 63−1 (−9,223,372, 036,854,775,807) 8 bájt
int Egész számokat tárol a megadott tartományban −2 31 (−2,147, 483,648) 2 31-1 (−2,147, 483,647) 4 bájt
smallint Egész számokat tárol a megadott tartományban −2 15 (−32 767) 2 15 (−32 768) 2 bájt
tinyint Egész számokat tárol a megadott tartományban 0 255 1 bájt
bit 0, 1 vagy NULL értéket vehet igénybe. 0 1 1 bájt / 8 bites oszlop
decimális Skála és rögzített pontosságú számokhoz használják −10 38 + 1 10 381−1 5–17 bájt
numerikus Skála és rögzített pontosságú számokhoz használják −10 38 + 1 10 381−1 5–17 bájt
pénz Használt monetáris adatok −922,337, 203, 685,477,5808 +922,337, 203, 685,477,5807 8 bájt
aprópénz Használt monetáris adatok −214,478.3648 +214,478.3647 4 bájt

Példák:

Lekérdezés:

DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int

Kimenet: 2

Szintaxis: Tizedes (P, S)

Itt,

  • P a pontosság
  • S skála

Lekérdezés:

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

Kimenet: 2.31

Hozzávetőleges numerikus

A hozzávetőleges numerikus kategória lebegőpontos és valós értékeket tartalmaz. Leginkább tudományos számításokban használják őket. Hozzávetőleges numerikus adattípus

Adattípus Leírás Alsó határ Felső határ memória Pontosság
úszó (n) Lebegő precíziós számhoz használják -1,79E + 308 1,79E + 308 N értékétől függ 7 számjegy
igazi Lebegő precíziós számhoz használják −3,40E + 38 3,40E + 38 4 bájt 15 számjegy
Syntax: FLOAT [(n)] 

Itt n az azoknak a biteknek a száma, amelyeket az úszószám mantissájának tudományos jelölésekben való tárolására használnak . Alapértelmezés szerint n értéke 53.

Amikor a felhasználó olyan adattípust határoz meg, mint a float, akkor n értéke 1 és 53 között legyen.

Az SQL Server az n- t a két lehetséges érték egyikeként kezeli . Ha 1 <= n <= 24, n-t 24-ként kezeljük. Ha 25 <= n <= 53, n-t 53-ként kezeljük.

Példa lekérdezés:

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

Kimenet: 22.1234

Dátum és idő

Dátum és idő típusú adatokat tárol. Dátum és idő adattípus

Adattípus Leírás Tárolási méret Pontosság Alsó tartomány Felső tartomány
Dátum idő 1753. január 1-jétől 9999. december 31-ig tartó dátum és idő megadására szolgál. Pontossága 3,33 milliszekundum. 8 bájt .000, .003, .007 lépésekre kerekítve 1753-01-01 9999-12-31
smalldatetime Dátum és idő megadására szolgál, 0001 január 1-től 9999. december 31-ig. 100 nanoszekundum pontosságú 4 bájt, fix 1 perc 1900-01-01 2079-06-06
dátum Csak tárolásra használt dátum 0001 január 1-je és 9999 december 31-e között 3 bájt, fix 1 nap 0001-01-01 9999-12-31
idő Csak az időértékek 100 nanomásodperces pontosságú tárolására szolgál. 5 bájt 100 nanoszekundum 00: 00: 00.0000000 23: 59: 59.9999999
datetimeoffset Hasonló az adatidőhöz, de időzónája eltolt 10 bájt 100 nanoszekundum 0001-01-01 9999-12-31
datetime2 Dátum és idő megadására szolgál, 0001 január 1-je és 9999 december 31-e között 6 bájt 100 nanoszekundum 0001-01-01 9999-12-31

Példa lekérdezés:

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

Kimenet: '2030-01-01'

Karakterláncok

Ez a kategória egy karaktertípushoz kapcsolódik. Lehetővé teszi a felhasználó számára, hogy meghatározza a karakter adattípusát, amely lehet fix és változó hosszúságú. Négyféle adattípusa van. Karakterlánc adattípusok

Adattípus Leírás Alsó határ Felső határ memória
char Ez egy rögzített szélességű karakterlánc. Legfeljebb 8000 karakter tárolható. 0 karakter 8000 karakter n bájt
varchar Ez egy változó szélességű karakterlánc 0 karakter 8000 karakter n bájt + 2 bájt
varchar (max) Ez egy változó szélességű karakterlánc. Legfeljebb 1 073 741 824 karaktert tárol. 0 karakter 2 31 karakter n bájt + 2 bájt
szöveg Ez egy változó szélességű karakterlánc. Legfeljebb 2 GB szöveges adatot tárol. 0 karakter 2 147 483 647 márka n bájt + 4 bájt

Példa lekérdezés:

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

Kimenet: Ez a Karakter Adattípus

Unicode karakterláncok

Ez a kategória az Unicode karakterek teljes körét tárolja, amely az UTF-16 karakterkódolást használja. Unicode karakter karakterlánc adattípusok

Adattípus Leírás Alsó határ Felső határ memória
nchar Ez egy rögzített szélességű Unicode karakterlánc 0 karakter 4000 karakter 2-szer n bájt
nvarchar Ez egy változó szélességű unicode karakterlánc 0 karakter 4000 karakter 2-szer n bájt + 2 bájt
ntext Ez egy változó szélességű unicode karakterlánc 0 karakter 1 073 741 823 karakter A húr hosszának 2-szerese

Példa lekérdezés:

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

Kimenet: Ez az nCharacter Datatype

Bináris húr

Ez a kategória rögzített és változó hosszúságú bináris karakterláncot tartalmaz. Bináris karakterlánc adattípusok

Adattípus Leírás Alsó határ Felső határ memória
bináris Ez egy rögzített szélességű bináris karakterlánc. Legfeljebb 8000 bájtot tárol. 0 bájt 8000 bájt n bájt
változatos Ez egy változó szélességű bináris karakterlánc. Legfeljebb 8000 bájtot tárol 0 bájt 8000 bájt A bevitt adatok tényleges hossza + 2 bájt
kép Ez egy változó szélességű bináris karakterlánc. Legfeljebb 2 GB tárolható. 0 bájt 2 147 483 647 bájt

Példa lekérdezés:

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

Kimenet: 0x000C

Egyéb adattípusok

Ezek más különböző adattípusok, az alábbi leírás-

Adattípus Leírás
Kurzor Kimenete egy sp_cursor_list és sp_describe_cursor oszlop . Visszaadja a kurzor változó nevét.
Soros változat Ez a verzió bélyegzőket sorozatokra.
Hierarchyid Ez az adattípus egy pozíciót képvisel a hierarchiában
Egyedi azonosító Konvertálás karakterkifejezésből.
Sql_variant Az SQL szerver által támogatott adattípusok értékeit tárolja.
XML XML adatokat tárol egy oszlopban.
Térgeometria típusa Lapos koordinátarendszerben ábrázolja az adatokat.
Térföldrajzi típus Az adatokat a körföld koordinátarendszerben ábrázolja.
asztal Az eredménykészletet későbbi feldolgozás céljából tárolja.

Érdekes tények!

  • A CHAR adattípus gyorsabb, mint a VARCHAR, az adatok lekérése közben.

Összegzés:

  • A táblák minden oszlopa meghatározza az adattípusát a tábla létrehozása során.
  • Hat fő kategória és egy másik különféle kategória létezik. Egyéb egyéb adatoknak kilenc adattípus-alkategória áll rendelkezésre.