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