SQL Server-datatyper: Varchar, Numerisk, Dato Tid (T-SQL-eksempler)

Indholdsfortegnelse:

Anonim

Hvad er datatype?

En datatype defineres som den datatype, som enhver kolonne eller variabel kan gemme i MS SQL Server.

Mens du opretter en hvilken som helst tabel eller variabel, ud over at angive navnet, indstiller du også den datatype, den skal gemme.

Sådan bruges MS SQL datatype

  • Du skal på forhånd definere, hvilken type data en kolonne eller variabel kan gemme. Bestemmelse af datatype begrænser også brugeren fra at indtaste uventede eller ugyldige data.
  • Du kan udnytte hukommelsen effektivt ved at tildele en passende datatype til variablen eller kolonnen, som kun tildeler den krævede mængde systemhukommelse til den respektive søjledata.
  • MS SQL tilbyder en bred kategori af datatypen efter brugerens behov. Ligesom dato, binære billeder osv.

I denne vejledning lærer du:

  • Hvad er datatype?
    • Sådan bruges MS SQL datatype
  • Hvorfor bruge datatyper?
    • Nøjagtig numerisk
    • Omtrentlig numerisk
    • Dato og tid
    • Karakterstrenge
    • Unicode-tegnstrenge
    • Binær streng
    • Andre datatyper

Hvorfor bruge datatyper?

Lad os tage en prøve af en enkel tilmeldingsside i webstedsapplikationen. Tre indtastningsfelter er fornavn, efternavn og kontaktnummer.

Her skal vi bemærke, at i realtid:

  • "For- / efternavn" vil altid være alfabetisk .
  • "Kontakt" vil altid være numerisk .

  • Fra ovenstående billede er det værd at definere "For- / efternavn" som et tegn og " Kontakt" som et heltal .

Det er tydeligt, at i alle applikationer 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 er det mere fornuftigt at definere kolonnen eller variablen med den datatype, den vil indeholde for effektiv hukommelse.

Datatype tilgængelig i MS SQL

MS SQL-server understøtter følgende kategorier af datatype:

  • Nøjagtigt numerisk
  • Omtrentlig numerisk
  • Dato og tid
  • Karakterstrenge
  • Unicode tegnstrenge
  • Binære strenge
  • Andre datatyper
MSQL-datatyper

Nøjagtig numerisk

Nøjagtigt numerisk har ni typer underdatatyper. Nøjagtige numeriske datatyper

Datatype Beskrivelse Nedre grænse Øverste grænse Hukommelse
bigint Det gemmer hele tal i det givne interval −2 63 (−9,223,372, 036,854,775,808) 2 63−1 (−9,223,372, 036,854,775,807) 8 byte
int Det gemmer hele tal i det givne interval −2 31 (−2,147, 483,648) 2 31−1 (−2,147, 483,647) 4 byte
smallint Det gemmer hele tal i det givne interval −2 15 (−32,767) 2 15 (−32,768) 2 byte
lilleint Det gemmer hele tal i det givne interval 0 255 1 byte
bit Det kan tage 0, 1 eller NULL-værdier. 0 1 1 byte / 8bit søjle
decimal Bruges til skala og faste præcisionstal −10 38 + 1 10 381−1 5 til 17 byte
numerisk Bruges til skala og faste præcisionstal −10 38 + 1 10 381−1 5 til 17 byte
penge Brugte monetære data −922.337, 203, 685.477.5808 +922.337, 203, 685.477.5807 8 byte
lille penge Brugte monetære data −214,478,3648 +214.478,3647 4 byte

Eksempler:

Forespørgsel:

DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int

Output: 2

Syntaks: decimal (P, S)

Her,

  • P er præcision
  • S er skala

Forespørgsel:

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

Output: 2.31

Omtrentlig numerisk

Omtrentlige numeriske kategori inkluderer flydende punkt og reelle værdier. De bruges mest i videnskabelige beregninger. Anslået numerisk datatype

Datatype Beskrivelse Nedre grænse Øverste grænse Hukommelse Præcision
flyde (n) Bruges til et flydende præcisionsnummer -1,79E + 308 1,79 E + 308 Afhænger af værdien af ​​n 7 cifre
ægte Bruges til et flydende præcisionsnummer −3.40E + 38 3.40E + 38 4 byte 15 cifre
Syntax: FLOAT [(n)] 

Her, n er antallet af bit, der bruges til at lagre mantissen af float tal i videnskabelig notation. Som standard er værdien af ​​n 53.

Når brugeren definerer en datatype som float, skal n 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 på forespørgsel:

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

Output: 22.1234

Dato og tid

Den gemmer data af typen Dato og klokkeslæt. Dato og klokkeslæt Datatype

Datatype Beskrivelse Opbevaringsstørrelse Nøjagtighed Lavere rækkevidde Øvre rækkevidde
Dato tid Bruges til at specificere en dato og et klokkeslæt fra 1. januar 1753 til 31. december 9999. Det har en nøjagtighed på 3,33 millisekunder. 8 byte Afrundet til intervaller på .000, .003, .007 1753-01-01 9999-12-31
smalldatetime Bruges til at specificere en dato og et klokkeslæt fra 1. januar 0001 til 31. december 9999. Det har en nøjagtighed på 100 nanosekunder 4 bytes, fast 1 minut 1900-01-01 2079-06-06
dato Bruges til kun 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 kun at gemme tidsværdier med en nøjagtighed på 100 nanosekunder. 5 byte 100 nanosekunder 00: 00: 00.0000000 23: 59: 59.9999999
datetimeoffset Svarende til datatid, men har en tidszone forskudt 10 byte 100 nanosekunder 0001-01-01 9999-12-31
datetime2 Bruges til angivelse af en dato og et klokkeslæt fra 1. januar 0001 til 31. december 9999 6 byte 100 nanosekunder 0001-01-01 9999-12-31

Eksempel på forespørgsel:

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

Output: '2030-01-01'

Karakterstrenge

Denne kategori er relateret til en karaktertype. Det giver brugeren mulighed for at definere datatypen af ​​karakter, som kan have en fast og variabel længde. Det har fire slags datatyper. 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 byte
varchar Dette er en tegnstreng med variabel bredde 0 tegn 8000 tegn n byte + 2 byte
varchar (maks.) Dette er en tegnstreng med en variabel bredde. Den gemmer maksimalt 1.073.741.824 tegn. 0 tegn 2 31 tegn n byte + 2 byte
tekst Dette er en tegnstreng med en variabel bredde. Den gemmer maksimalt 2 GB tekstdata. 0 tegn 2.147.483.647 tegn n byte + 4 byte

Eksempel på forespørgsel:

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

Output: Dette er karakterdatatype

Unicode-tegnstrenge

Denne kategori gemmer hele spektret af Unicode-tegn, der bruger UTF-16-tegnkodning. Unicode-karakterstrengdatatyper

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 byte
nvarchar Det er en unicode-streng med variabel bredde 0 tegn 4000 tegn 2 gange n byte + 2 byte
ntekst Det er en unicode-streng med variabel bredde 0 tegn 1.073.741.823 char 2 gange strenglængden

Eksempel på forespørgsel:

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

Output: Dette er nCharacter Datatype

Binær streng

Denne kategori indeholder en binær streng med fast og variabel længde. Binærstrengdatatyper

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 byte. 0 byte 8000 byte n byte
varbinær Dette er en binær streng med variabel bredde. Den gemmer maksimalt 8.000 byte 0 byte 8000 byte Den aktuelle længde af indtastede data + 2 byte
billede Dette er en binær streng med variabel bredde. Den gemmer maksimalt 2 GB. 0 byte 2.147.483.647 bytes

Eksempel på forespørgsel:

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

Output: 0x000C

Andre datatyper

Disse er andre forskellige datatyper med beskrivelsen nedenfor -

Datatype Beskrivelse
cursoren Dets output er en kolonne med sp_cursor_list og sp_describe_cursor. Den returnerer navnet på markørvariablen.
Rækkeversion Den version stempler tabelrækker.
Hierarkiid Denne datatype repræsenterer en position i hierarkiet
Unik identifikator Konvertering fra et karakterudtryk.
Sql_variant Det gemmer værdier for SQL-server understøttede datatyper.
XML Det gemmer XML-data i en kolonne.
Rumlig geometri type Det repræsenterer data i et fladt koordinatsystem.
Geografisk geografisk type Det repræsenterer data i det runde jordkoordinatsystem.
bord Det gemmer et resultatsæt til senere behandling.

Interessante fakta!

  • CHAR-datatypen er hurtigere end VARCHAR, mens data hentes.

Resumé:

  • Hver kolonne i tabeller definerer med sin datatype under oprettelse af tabel.
  • Der er seks hovedkategorier og en anden diverse kategori. Andre diverse har ni underkategorier af datatyper tilgængelige.