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

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.