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.
SQL Server datatyper
Eksempel pรฅ datatyper i MS SQL
  • 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
Datatype tilgรฆngelig i MS SQL Server

MS SQL 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.

Opsummer dette indlรฆg med: