SQL Server-datatyper med eksempler
Hvad er datatype?
A Datatype i SQL server er defineret som den type data, som enhver kolonne eller variabel kan gemme. Det er en type data, som et objekt indeholder som heltal, tegn, streng osv. Mens du opretter en tabel eller variabel, kan du ud over at angive navnet ogsรฅ indstille den type data, den vil gemme.
Sรฅdan bruges MS SQL datatype
- Du skal pรฅ forhรฅnd definere, hvilken type data en kolonne eller variabel kan gemme. Fastlรฆggelse af datatype begrรฆnser ogsรฅ brugeren i at indtaste uventede eller ugyldige data.
- Du kan udnytte hukommelsen effektivt ved at tildele en passende datatype til variabel eller kolonne, som kun vil allokere den nรธdvendige mรฆngde systemhukommelse til den respektive kolonnes data.
- MS SQL tilbyder en bred kategori af grundlรฆggende datatyper i SQL i henhold til brugerens behov som Dato, binรฆre billeder osv.
Hvorfor bruge DataTypes?
Lad os tage en prรธve af simple Tilmeldingsside af webstedsansรธgningen. Tre inputfelter er Fornavn, Efternavn og Kontaktnummer.
Her skal vi bemรฆrke, at i realtid:
- "Fรธrste efternavn" vil altid vรฆre alfabetisk.
- "Kontakt" vil altid vรฆre numerisk.

- Fra ovenstรฅende billede er det vรฆrd at definere "Fรธrste efternavn" som en karakter og "Kontakt" som en heltal.
Det er tydeligt, at i enhver applikation har alle felter den ene eller den anden type data. F.eks. numerisk, alfabetisk, dato og mange flere.
Bemรฆrk ogsรฅ, at forskellige datatyper har forskellige hukommelseskrav. Derfor giver det mere mening at definere kolonnen eller variabel med den datatype, den vil indeholde for effektiv brug af hukommelsen.
Datatype tilgรฆngelig i MS SQL Server
Her er en liste over MS SQL-serverdatatyper:
MS SQL server understรธtte fรธlgende kategorier af datatype:
- Prรฆcis numerisk
- Cirka numerisk
- Dato og tid
- Karakterstrenge
- Unicode-tegnstrenge
- Binรฆre strenge
- Andre datatyper
Nรธjagtige numeriske datatyper i SQL
Prรฆcis numerisk har ni typer underdatatyper i SQL-serveren.
Nรธjagtige numeriske datatyper
| Datatype | Beskrivelse | Nedre grรฆnse | รverste grรฆnse | Hukommelse |
|---|---|---|---|---|
| bigint | Den gemmer hele tal i det angivne interval | โ2^63 (โ9,223,372, 036,854,775,808) | 2^63โ1 (โ9,223,372, 036,854,775,807) | 8 bytes |
| int | Den gemmer hele tal i det angivne interval | โ2^31 (โ2,147, 483,648) | 2^31โ1 (โ2,147, 483,647) | 4 bytes |
| smallint | Den gemmer hele tal i det angivne interval | -2^15 (-32,767) | 2^15 (-32,768) | 2 bytes |
| lillebitte | Den gemmer hele tal i det angivne interval | 0 | 255 | 1 byte |
| bit | Det kan tage 0, 1 eller NULL vรฆrdier. | 0 | 1 | 1 byte/8bit kolonne |
| decimal | Anvendes til skala og faste prรฆcisionstal | โ10^38+1 | 10^381โ1 | 5 til 17 bytes |
| numerisk | Anvendes til skala og faste prรฆcisionstal | โ10^38+1 | 10^381โ1 | 5 til 17 bytes |
| penge | Brugte pengedata | โ922,337, 203, 685,477.5808 | +922,337, 203, 685,477.5807 | 8 bytes |
| smรฅpenge | Brugte pengedata | -214,478.3648 | + 214,478.3647 | 4 bytes |
Nรธjagtige numeriske datatyper ind SQL-server med eksempler:
Forespรธrgsel:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
Produktion
2
Syntaks
Decimal (P,S)
Her,
- P er prรฆcision
- S er skala
Forespรธrgsel:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31 PRINT @Datatype_Decimal
Produktion
2.31
Tilnรฆrmede numeriske datatyper i SQL
SQL Tilnรฆrmet numerisk kategori inkluderer flydende komma og reelle vรฆrdier. Disse datatyper i SQL bruges mest i videnskabelige beregninger.
Omtrentlig numerisk datatype
| Datatype | Beskrivelse | Nedre grรฆnse | รverste grรฆnse | Hukommelse | Precision |
|---|---|---|---|---|---|
| flyde(n) | Bruges til et flydende prรฆcisionstal | โ1.79E+308 | 1.79 308 + | Afhรฆnger af vรฆrdien af โโn | 7 Digit |
| รฆgte | Bruges til et flydende prรฆcisionstal | โ3.40E+38 | 3.40 38 + | 4 bytes | 15 Digit |
Syntax: FLOAT [(n)]
Her, n er antallet af bit, der bruges til at lagre mantissen af flyde nummer i videnskabelig notation. Som standard er vรฆrdien af โโn 53.
Nรฅr brugeren definerer en datatype som float, n skal vรฆre en vรฆrdi mellem 1 og 53.
SQL Server behandler n som en af โโto mulige vรฆrdier. Hvis 1<=n<=24, behandles n som 24. Hvis 25<=n<=53, behandles n som 53.
Eksempel forespรธrgsel:
DECLARE @Datatype_Float FLOAT(24) = 22.1234 PRINT @Datatype_Float
Produktion
22.1234
Dato og klokkeslรฆt Datatyper i SQL
Den gemmer data af typen Dato og tid.
Dato og klokkeslรฆt Datatype
| Datatype | Beskrivelse | Opbevaringsstรธrrelse | Nรธjagtighed | Nedre rรฆkkevidde | รvre rรฆkkevidde |
|---|---|---|---|---|---|
| DateTime | Bruges til at angive en dato og tid fra 1. januar 1753 til 31. december 9999. Den har en nรธjagtighed pรฅ 3.33 millisekunder. | 8 bytes | Afrundet til trin pรฅ .000, .003, .007 | 1753-01-01 | 9999-12-31 |
| smalldatetime | Bruges til at angive en dato og tid fra 1. januar 0001 til 31. december 9999. Den har en nรธjagtighed pรฅ 100 nanosekunder | 4 bytes, fast | 1 minutter | 1900-01-01 | 2079-06-06 |
| dato | Brugt kun til at gemme dato fra 1. januar 0001 til 31. december 9999 | 3 bytes, fast | 1 dag | 0001-01-01 | 9999-12-31 |
| tid | Bruges til at gemme kun tidsvรฆrdier med en nรธjagtighed pรฅ 100 nanosekunder. | 5 bytes | 100 nanosekunder | 00:00:00.0000000 | 23:59:59.9999999 |
| datotidsforskydning | Svarer til datatid, men har en tidszoneforskydning | 10 bytes | 100 nanosekunder | 0001-01-01 | 9999-12-31 |
| dato klokkeslรฆt 2 | Bruges til at angive en dato og tid fra 1. januar 0001 til 31. december 9999 | 6 bytes | 100 nanosekunder | 0001-01-01 | 9999-12-31 |
Eksempel forespรธrgsel:
DECLARE @Datatype_Date DATE = '2030-01-01' PRINT @Datatype_Date
Produktion
'2030-01-01'
Tegnstrenge Datatyper i SQL
Denne kategori er relateret til en karaktertype. Det giver brugeren mulighed for at definere datatypen for tegn, som kan vรฆre af fast og variabel lรฆngde. Den har fire slags datatyper. Nedenfor er tegnstrengen SQL server datatyper med eksempler.
Datatyper for tegnstrenge
| Datatype | Beskrivelse | Nedre grรฆnse | รverste grรฆnse | Hukommelse |
|---|---|---|---|---|
| char | Det er en tegnstreng med en fast bredde. Den gemmer maksimalt 8,000 tegn. | 0 tegn | 8000 tegn | n bytes |
| VARCHAR | Dette er en tegnstreng med variabel bredde | 0 tegn | 8000 tegn | n bytes + 2 bytes |
| varchar (maks.) | Dette er en tegnstreng med en variabel bredde. Den gemmer maksimalt 1,073,741,824 tegn. | 0 tegn | 2^31 tegn | n bytes + 2 bytes |
| tekst | Dette er en tegnstreng med en variabel bredde. Den gemmer maksimalt 2 GB tekstdata. | 0 tegn | 2,147,483,647 tegn | n bytes + 4 bytes |
Eksempel forespรธrgsel:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype' PRINT @Datatype_Char
Produktion
Dette er Character Datatype
Unicode-tegnstrenge datatyper i SQL
Denne kategori gemmer hele rรฆkken af โโUnicode-tegn, som bruger UTF-16-tegnkodning.
Unicode-tegnstrengsdatatyper
| Datatype | Beskrivelse | Nedre grรฆnse | รverste grรฆnse | Hukommelse |
|---|---|---|---|---|
| nchar | Det er en Unicode-streng med fast bredde | 0 tegn | 4000 tegn | 2 gange n bytes |
| nvarchar | Det er en unicode-streng med variabel bredde | 0 tegn | 4000 tegn | 2 gange n bytes + 2 bytes |
| ntekst | Det er en unicode-streng med variabel bredde | 0 tegn | 1,073,741,823 fork | 2 gange snorlรฆngden |
Eksempel forespรธrgsel:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype' PRINT @Datatype_nChar
Produktion
Dette er nCharacter Datatype
Binรฆre strengdatatyper i SQL
Denne kategori indeholder en binรฆr streng med fast og variabel lรฆngde.
Binรฆre strengdatatyper
| Datatype | Beskrivelse | Nedre grรฆnse | รverste grรฆnse | Hukommelse |
|---|---|---|---|---|
| binรฆr | Det er en binรฆr streng med fast bredde. Den gemmer maksimalt 8,000 bytes. | 0 bytes | 8000 bytes | n bytes |
| varbinรฆr | Dette er en binรฆr streng med variabel bredde. Den gemmer maksimalt 8,000 bytes | 0 bytes | 8000 bytes | Den faktiske lรฆngde af de indtastede data + 2 bytes |
| billede | Dette er en binรฆr streng med variabel bredde. Den gemmer maksimalt 2GB. | 0 bytes | 2,147,483,647 bytes |
Eksempel forespรธrgsel:
DECLARE @Datatype_Binary BINARY(2) = 12; PRINT @Datatype_Binary
Produktion
0x000C
Andre datatyper i SQL
Disse er andre forskellige SQL server datatyper med beskrivelsen nedenfor-
| Datatype | Beskrivelse |
|---|---|
| Cursor | Dens output er en kolonne af sp_cursor_list og sp_describe_cursor. Det returnerer navnet pรฅ markรธrvariablen. |
| Rรฆkke version | Dens version stempler tabelrรฆkker. |
| Hierarkiid | Denne datatype reprรฆsenterer en position i hierarkiet |
| Unikidentifikator | Konvertering fra et tegnudtryk. |
| SQL_variant | Det gemmer vรฆrdier af SQL-server-understรธttede datatyper. |
| XML | Det gemmer XML-data i en kolonne. |
| Rumlig geometri type | Det reprรฆsenterer data i et fladt koordinatsystem. |
| Rumlig geografi type | Det reprรฆsenterer data i det runde jord-koordinatsystem. |
| bord | Den gemmer et resultatsรฆt til senere behandling. |
Interessante fakta!
- CHAR datatype er hurtigere end SQL VARCHAR-datatypen, mens data hentes.
Resumรฉ
- Hver kolonne i tabeller definerer med sin datatype under tabeloprettelse.
- Der er seks hovedkategorier og en anden diverse kategori. Andet diverse har ni underkategorier af SQL-server tilgรฆngelige datatyper og stรธrrelser.
