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 Description 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 Description 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 Description 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 Description 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 Description 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 Description 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 Description
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.