Microsoft SQL Server
Datatyper
Sök…
Introduktion
I det här avsnittet diskuteras de datatyper som SQL Server kan använda, inklusive deras dataintervall, längd och begränsningar (om sådana finns.)
Exakt numerik
Det finns två grundläggande klasser med exakta numeriska datatyper - heltal och fast precision och skala .
Heltalsdatatyper
- bit
- tinyint
- smallint
- int
- bigint
Heltal är numeriska värden som aldrig innehåller en bråkdel och som alltid använder en fast mängd lagring. Område och lagringsstorlekar för heltaldatatyper visas i denna tabell:
Data typ | Räckvidd | Lagring |
---|---|---|
bit | 0 eller 1 | 1 bit ** |
tinyint | 0 till 255 | 1 byte |
smallint | -2 ^ 15 (-32,768) till 2 ^ 15-1 (32,767) | 2 byte |
int | -2 ^ 31 (-2,147,483,648) till 2 ^ 31-1 (2,147,483,647) | 4 bytes |
bigint | -2 ^ 63 (-9,223,372,036,854,775,808) till 2 ^ 63-1 (9,223,372,036,854,775,807) | 8 byte |
Fasta datatyper för precision och skala
- numerisk
- decimal
- smallmoney
- pengar
Dessa datatyper är användbara för att exakt representera siffror. Så länge värdena kan passa inom värdet som kan lagras i datatypen, kommer värdet inte att ha avrundningsproblem. Detta är användbart för alla ekonomiska beräkningar, där avrundningsfel kommer att leda till klinisk vansinne för revisorer.
Observera att decimaler och siffror är synonymer för samma datatyp.
Data typ | Räckvidd | Lagring |
---|---|---|
Decimal [(p [, s])] eller numeriskt [(p [, s])] | -10 ^ 38 + 1 till 10 ^ 38 - 1 | Se Precisionstabell |
När du definierar en decimal- eller numerisk datatyp kan du behöva ange Precision [p] och Scale [s].
Precision är antalet siffror som kan lagras. Om du till exempel skulle behöva lagra värden mellan 1 och 999, skulle du behöva en precision på 3 (för att hålla de tre siffrorna i 100). Om du inte anger en precision är standardprecisionen 18.
Skala är antalet siffror efter decimalpunkten. Om du behövde lagra ett nummer mellan 0,00 och 999,99, måste du ange en precision på 5 (fem siffror) och en skala på 2 (två siffror efter decimalpunkten). Du måste ange en precision för att ange en skala. Standardskalan är noll.
Precisionen för en decimal eller numerisk datatyp definierar antalet byte som krävs för att lagra värdet, som visas nedan:
Precisionstabell
Precision | Lagringsbyte |
---|---|
1 - 9 | 5 |
10-19 | 9 |
20-28 | 13 |
29-38 | 17 |
Monetära fasta datatyper
Dessa datatyper är avsedda specifikt för redovisning och andra monetära uppgifter. Den här typen har en fast skala på 4 - du kommer alltid att se fyra siffror efter decimalplatsen. För de flesta system som arbetar med de flesta valutor är det tillräckligt att använda ett numeriskt värde med en skala på 2. Observera att ingen information om typen av representerad valuta lagras med värdet.
Data typ | Räckvidd | Lagring |
---|---|---|
pengar | -922,337,203,685,477,5808 till 922,337,203,685,477,5807 | 8 byte |
smallmoney | -214,748,3648 till 214,748,3647 | 4 bytes |
Ungefärliga siffror
- flyta [( n )]
- verklig
Dessa datatyper används för att lagra flytande punktnummer. Eftersom dessa typer endast är avsedda att innehålla ungefärliga numeriska värden bör dessa inte användas i fall där något avrundningsfel är oacceptabelt. Men om du behöver hantera mycket stora siffror eller siffror med ett obestämt antal siffror efter decimalen kan dessa vara det bästa alternativet.
Data typ | Räckvidd | Storlek |
---|---|---|
flyta | -1.79E + 308 till -2.23E-308, 0 och 2.23E-308 till 1.79E + 308 | beror på n i tabellen nedan |
verklig | -3,40E + 38 till -1,18E - 38, 0 och 1,18E - 38 till 3,40E + 38 | 4 bytes |
n- värdetabell för floatnummer . Om inget värde anges i flottördeklarationen kommer standardvärdet 53 att användas. Observera att flottören (24) motsvarar ett verkligt värde.
n-värde | Precision | Storlek |
---|---|---|
1-24 | 7 siffror | 4 bytes |
25-53 | 15 siffror | 8 byte |
Datum och tid
Dessa typer finns i alla versioner av SQL Server
- datum Tid
- smalldatetime
Dessa typer finns i alla versioner av SQL Server efter SQL Server 2012
- datum
- datetimeoffset
- datetime2
- tid
Teckensträngar
- röding
- varchar
- text
Unicode-karaktärssträngar
- nchar
- nvarchar
- ntext
Binära strängar
- binär
- varbinary
- bild
Andra datatyper
- markören
- tidsstämpel
- hierarchyid
- uniqueidentifier
- sql_variant
- xml
- tabell
- Rumsliga typer