SQL Server adattípusok példákkal
⚡ Okos összefoglaló
Az SQL Server adattípusai határozzák meg, hogy egy oszlop vagy változó milyen típusú értéket tárolhat, például egész számot, decimális számot, karaktert, dátumot vagy bináris számot. A megfelelő típus kiválasztása érvényes adatokat biztosít, és hatékonyan használja a memóriát.

Mi az adattípus?
Egy adattípus MS SQL Server az az adattípus, amelyet bármely oszlop vagy változó tárolni tud. Ez az az adattípus, amelyet egy objektum tárol, például egész szám, karakter vagy karakterlánc. Bármelyik létrehozásakor táblázat or változóA név megadása mellett a tárolt adatok típusát is beállíthatod.
Az MS SQL adattípus használata
Előre meg kell határozni, hogy milyen típusú adatokat tárolhat egy oszlop vagy változó. Az adattípus meghatározása azt is megakadályozza, hogy a felhasználó váratlan vagy érvénytelen adatokat adjon meg.
A memória hatékony felhasználásához rendeljen hozzá megfelelő adattípust egy változóhoz vagy oszlophoz, amely csak a szükséges mennyiségű rendszermemóriát foglalja le az adott oszlop adatai számára.
Az MS SQL az alapvető adattípusok széles skáláját kínálja SQL a felhasználói igények kielégítésére, például dátum, bináris fájlok, képek és egyebek.
Miért használjunk adattípusokat?
Vegyünk egy egyszerű weboldal-alkalmazás regisztrációs oldalának példáját. A három beviteli mező a keresztnév, a vezetéknév és az telefonszám.
Itt meg kell jegyeznünk, hogy valós helyzetekben:
- A „Vezetéknév/Keresztnév” mindig betűrendben lesz megadva.
- A „Kapcsolat” mező mindig számokból áll.
Az alábbi példa egy regisztrációs űrlapon szemlélteti ezeket a mezőket.
A fenti kép alapján logikus, hogy a „Keresztnév/Vezetéknév” karakterként, a „Kapcsolat” pedig egész számként definiálható.
Nyilvánvaló, hogy bármely alkalmazásban minden mező valamilyen típusú adatot tartalmaz, például numerikus, betűtípusú, dátum és még sok más.
Azt is vedd figyelembe, hogy a különböző adattípusok eltérő memóriaigényűek. Ezért a memória hatékony felhasználása érdekében érdemesebb az oszlopot vagy változót a benne tárolandó adattípussal definiálni.
Az MS SQL Serverben elérhető adattípus
Itt található az MS SQL Server adattípusainak listája. Az MS SQL Server a következő adattípus-kategóriákat támogatja:
- Pontos numerikus
- Hozzávetőleges numerikus
- Dátum és idő
- Karakterláncok
- Unicode karakterláncok
- Bináris karakterláncok
- Egyéb adattípusok
Az alábbi ábra az MS SQL Server adattípusait ezekbe a kategóriákba csoportosítja.
Pontos numerikus adattípusok az SQL-ben
Az SQL Serverben a pontos numerikus típus kilenc altípussal rendelkezik. Mindegyik típus egész vagy fixpontos számokat tárol egy meghatározott tartományon belül.
| Adattípus | Leírás | Alsó határ | Felső határ | Memory design |
|---|---|---|---|---|
| bigint | Egész számokat tárol a megadott tartományban | −2^63 (−9,223,372,036,854,775,808 XNUMX) | 2^63−1 (32 767) | 8 bytes |
| int | Egész számokat tárol a megadott tartományban | −2^31 (−2,147,483,648 XNUMX) | 2^31−1 (32 767) | 4 bytes |
| smallint | Egész számokat tárol a megadott tartományban | −2^15 (−32,768 XNUMX) | 2^15−1 (32 767) | 2 bytes |
| aprócska | Egész számokat tárol a megadott tartományban | 0 | 255 | 1 bájt |
| bit | 0, 1 vagy NULL értéket vehet fel. | 0 | 1 | 1 bájt / 8 bites oszlop |
| decimális | Skála és fix pontosságú számokhoz használatos | −10^38+1 | 10^38−1 | 5-17 bájt |
| numerikus | Skála és fix pontosságú számokhoz használatos | −10^38+1 | 10^38−1 | 5-17 bájt |
| pénz | Monetáris adatokhoz használják | -922,337,203,685,477.5808 | +922,337,203,685,477.5807 | 8 bytes |
| kis pénz | Monetáris adatokhoz használják | -214,478.3648 | +214,478.3647 | 4 bytes |
Pontos numerikus adattípusok az SQL Serverben példákkal:
Keresés:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
output:
2
Syntax:
Decimal (P,S)
Itt P a pontosságot, S pedig a skálaértéket jelöli.
Keresés:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31 PRINT @Datatype_Decimal
output:
2.31
Hozzávetőleges numerikus adattípusok az SQL-ben
Az SQL közelítő numerikus kategóriája magában foglalja a lebegőpontos és a valós értékeket. Ezeket az adattípusokat többnyire tudományos számításokban használják.
| Adattípus | Leírás | Alsó határ | Felső határ | Memory design | Pontosság |
|---|---|---|---|---|---|
| úszó(n) | Lebegő precíziós számokhoz használják | −1.79E+308 | 1.79E + 308 | n értékétől függ | 15 számjegy |
| igazi | Lebegő precíziós számokhoz használják | −3.40E+38 | 3.40E + 38 | 4 bytes | 7 számjegy |
A float típus a következő szintaxist használja:
Syntax: FLOAT [(n)]
Itt n a lebegőpontos szám mantisszájának tudományos jelöléssel történő tárolására használt bitek száma. Alapértelmezés szerint n értéke 53.
Amikor egy float típusú adattípust definiálunk, az n értékének 1 és 53 között kell lennie. Az SQL Server két lehetséges érték egyikeként kezeli az n értéket: ha 1<=n<=24, akkor az n 24-ként kezelendő; ha 25<=n<=53, akkor az n 53-ként kezelendő.
Példa lekérdezés:
DECLARE @Datatype_Float FLOAT(24) = 22.1234 PRINT @Datatype_Float
output:
22.1234
Dátum és idő adattípusok SQL-ben
Ez a kategória dátum és idő típusú adatokat tárol.
| Adattípus | Leírás | Tárolási méret | Pontosság | Alsó tartomány | Felső tartomány |
|---|---|---|---|---|---|
| Dátum idő | 1. január 1753. és 31. december 9999. közötti dátum és idő megadására szolgál. Pontossága 3.33 ezredmásodperc. | 8 bytes | 000, 003, 007 lépésekre kerekítve | 1753-01-01 | 9999-12-31 |
| kis randevú | 1900. január 1. és 2079. június 6. közötti dátum és idő megadására szolgál. 1 perces pontossággal adja meg. | 4 bájt, fix | 1 perc | 1900-01-01 | 2079-06-06 |
| adat | Csak 0001. január 1. és 9999. december 31. közötti dátum tárolására szolgál. | 3 bájt, fix | 1 nap | 0001-01-01 | 9999-12-31 |
| idő | Kizárólag időértékek tárolására szolgál, 100 nanoszekundum pontossággal. | 5 bytes | 100 XNUMX XNUMX nanoszekundum | 00:00:00.0000000 | 23:59:59.9999999 |
| datetime offset | Hasonló a datetime-hez, de van egy időzóna-eltolása | 10 bytes | 100 XNUMX XNUMX nanoszekundum | 0001-01-01 | 9999-12-31 |
| dátumidő2 | 1. január 0001. és 31. december 9999. közötti dátum és idő megadására szolgál | 6 bytes | 100 XNUMX XNUMX nanoszekundum | 0001-01-01 | 9999-12-31 |
Példa lekérdezés:
DECLARE @Datatype_Date DATE = '2030-01-01' PRINT @Datatype_Date
output:
'2030-01-01'
Karakterláncok adattípusai az SQL-ben
Ez a kategória karaktertípusokkal kapcsolatos. Lehetővé teszi fix és változó hosszúságú karakteradatok definiálását. Négyféle adattípus létezik. Az alábbiakban a karakterlánc adattípusok láthatók példákkal.
| Adattípus | Leírás | Alsó határ | Felső határ | Memory design |
|---|---|---|---|---|
| faszén | Ez egy fix szélességű karakterlánc. Maximum 8,000 karaktert tárol. | 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. Maximum 1,073,741,824 XNUMX XNUMX XNUMX 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árolhat. | 0 karakter | 2,147,483,647 karakter | n bájt + 4 bájt |
Példa lekérdezés:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype' PRINT @Datatype_Char
output:
Ez a karakter adattípus
Unicode karakterláncok adattípusai az SQL-ben
Ez a kategória az Unicode karakterek teljes skáláját tárolja, amelyek az UTF-16 karakterkódolást használják.
| Adattípus | Leírás | Alsó határ | Felső határ | Memory design |
|---|---|---|---|---|
| nchar | Ez egy fix 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 | 2-szer a húrhossz |
Példa lekérdezés:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype' PRINT @Datatype_nChar
output:
Ez az nCharacter adattípus
Bináris karakterlánc adattípusok SQL-ben
Ez a kategória fix és változó hosszúságú bináris karakterláncokat tartalmaz.
| Adattípus | Leírás | Alsó határ | Felső határ | Memory design |
|---|---|---|---|---|
| kétkomponensű | Ez egy fix szélességű bináris karakterlánc. Legfeljebb 8,000 bájtot tárolhat. | 0 bytes | 8000 bytes | n bájt |
| varbináris | Ez egy változó szélességű bináris karakterlánc. Legfeljebb 8,000 bájtot tárolhat. | 0 bytes | 8000 bytes | A bevitt adatok tényleges hossza + 2 bájt |
| kép | Ez egy változó szélességű bináris karakterlánc. Maximum 2 GB-ot tárolhat. | 0 bytes | 2,147,483,647 bytes | - |
Példa lekérdezés:
DECLARE @Datatype_Binary BINARY(2) = 12; PRINT @Datatype_Binary
output:
0x000C
Egyéb adattípusok az SQL-ben
Ezek a további SQL Server adattípusok, leírásukkal alább:
| Adattípus | Leírás |
|---|---|
| Kurzor | A kimenete egy sp_cursor_list és sp_describe_cursor oszlop. Visszaadja a kurzorváltozó nevét. |
| Sorverzió | Verzióbélyegzővel látja el a táblázat sorait. |
| Hierarchid | Ez az adattípus egy pozíciót jelöl egy hierarchiában. |
| Egyedi azonosító | Egy GUID-ot tárol, amelyet gyakran karakterkifejezésből alakítanak át. |
| Sql_variant | Az SQL Server által támogatott adattípusok értékeit tárolja. |
| XML | Az XML adatokat egy oszlopban tárolja. |
| Térgeometria típusa | Az adatokat lapos koordináta-rendszerben ábrázolja. |
| Térföldrajz típus | A Föld körüli koordinátarendszerben ábrázolja az adatokat. |
| táblázat | Eredménykészletet tárol későbbi feldolgozás céljából. |
Érdekes tények!
- A CHAR adattípus gyorsabb az adatok lekérésekor, mint a VARCHAR adattípus, mivel fix szélessége elkerüli a hosszfüggvények használatát.ping.


