SQL Server-datatyper med exempel
⚡ Smart sammanfattning
SQL Server-datatyper definierar vilken typ av värde en kolumn eller variabel kan lagra, till exempel heltal, decimaltal, tecken, datum eller binärt värde. Att välja rätt typ framtvingar giltiga data och använder minnet effektivt.

Vad är datatyp?
En datatyp i MS SQL Server definieras som den typ av data som en kolumn eller variabel kan lagra. Det är den typ av data som ett objekt innehåller, såsom heltal, tecken eller sträng. När du skapar något bord or variabel, förutom att ange namnet, anger du även vilken typ av data som ska lagras.
Hur man använder MS SQL-datatypen
Du måste i förväg definiera vilken typ av data en kolumn eller variabel kan lagra. Att bestämma datatypen begränsar också användaren från att mata in oväntade eller ogiltiga data.
Du kan utnyttja minnet effektivt genom att tilldela en lämplig datatyp till en variabel eller kolumn, vilket endast allokerar den mängd systemminne som krävs för den kolumnens data.
MS SQL erbjuder ett brett utbud av grundläggande datatyper i SQL för att passa användarnas behov, såsom datum, binärfiler, bilder med mera.
Varför använda DataTypes?
Ta exemplet med en enkel registreringssida för en webbplatsapplikation. De tre inmatningsfälten är Förnamn, Efternamn och Kontaktnummer.
Här bör vi notera att, i verkliga scenarier:
- ”Förnamn/Efternamn” kommer alltid att vara alfabetiskt.
- ”Kontakt” kommer alltid att vara numeriskt.
Exemplet nedan illustrerar dessa fält på ett registreringsformulär.
Utifrån bilden ovan är det rimligt att definiera ”Förnamn/Efternamn” som ett tecken och ”Kontakt” som ett heltal.
Det är uppenbart att i alla applikationer har alla fält en eller annan typ av data, till exempel numerisk, alfabetisk, datum och många fler.
Observera också att olika datatyper har olika minneskrav. Därför är det mer meningsfullt att definiera kolumnen eller variabeln med den datatyp den kommer att innehålla, för effektiv minnesanvändning.
Datatyp tillgänglig i MS SQL Server
Här är en lista över datatyper för MS SQL Server. MS SQL Server stöder följande kategorier av datatyper:
- Exakt numeriskt
- Ungefärlig numerisk
- Datum och tid
- Karaktärssträngar
- Unicode teckensträngar
- Binära strängar
- Andra datatyper
Diagrammet nedan grupperar MS SQL Server-datatyperna i dessa kategorier.
Exakta numeriska datatyper i SQL
Exakt numerisk har nio underdatatyper i SQL Server. Varje typ lagrar heltal eller fasta tal inom ett definierat intervall.
| Data typ | BESKRIVNING | Lägre gräns | Övre gräns | Minne |
|---|---|---|---|---|
| bigint | Den lagrar heltal i det angivna intervallet | −2^63 (−9,223,372,036,854,775,808 XNUMX) | 2^63−1 (32 767) | 8 bitgrupper |
| int | Den lagrar heltal i det angivna intervallet | −2^31 (−2,147,483,648 XNUMX) | 2^31−1 (32 767) | 4 bitgrupper |
| smallint | Den lagrar heltal i det angivna intervallet | −2^15 (−32,768 XNUMX) | 2^15−1 (32 767) | 2 bitgrupper |
| pytteliten | Den lagrar heltal i det angivna intervallet | 0 | 255 | 1 byte |
| bitars | Det kan ta värden 0, 1 eller NULL. | 0 | 1 | 1 byte / 8-bitars kolumn |
| decimal- | Används för skala och fasta precisionsnummer | −10^38+1 | 10^38−1 | 5 till 17 byte |
| numerisk | Används för skala och fasta precisionsnummer | −10^38+1 | 10^38−1 | 5 till 17 byte |
| pengar | Används för monetära data | -922,337,203,685,477.5808 | +922,337,203,685,477.5807 | 8 bitgrupper |
| småpengar | Används för monetära data | -214,478.3648 | +214,478.3647 | 4 bitgrupper |
Exakta numeriska datatyper i SQL Server med exempel:
Fråga:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
Produktion:
2
Syntax:
Decimal (P,S)
Här är P precisionen och S är skalan.
Fråga:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31 PRINT @Datatype_Decimal
Produktion:
2.31
Ungefärliga numeriska datatyper i SQL
Den approximativa numeriska kategorin SQL inkluderar flyttal och reella värden. Dessa datatyper används mestadels i vetenskapliga beräkningar.
| Data typ | BESKRIVNING | Lägre gräns | Övre gräns | Minne | Precision |
|---|---|---|---|---|---|
| flyta(n) | Används för ett flytande precisionsnummer | −1.79E+308 | 1.79E + 308 | Beror på värdet på n | 15 siffra |
| verklig | Används för ett flytande precisionsnummer | −3.40E+38 | 3.40E + 38 | 4 bitgrupper | 7 siffra |
Flyttalstypen använder följande syntax:
Syntax: FLOAT [(n)]
Här är n antalet bitar som används för att lagra mantissan för flyttalet i vetenskaplig notation. Som standard är värdet för n 53.
När du definierar en datatyp som flyttal, bör n vara ett värde mellan 1 och 53. SQL Server behandlar n som ett av två möjliga värden: om 1<=n<=24, behandlas n som 24; om 25<=n<=53, behandlas n som 53.
Exempelfråga:
DECLARE @Datatype_Float FLOAT(24) = 22.1234 PRINT @Datatype_Float
Produktion:
22.1234
Datum och tid Datatyper i SQL
Den här kategorin lagrar data av typen datum och tid.
| Data typ | BESKRIVNING | Lagringsstorlek | Noggrannhet | Lägre intervall | Övre Range |
|---|---|---|---|---|---|
| Datum Tid | Används för att ange ett datum och en tid från 1 januari 1753 till 31 december 9999. Den har en noggrannhet på 3.33 millisekunder. | 8 bitgrupper | Avrundat till steg om .000, .003, .007 | 1753-01-01 | 9999-12-31 |
| smalldatetime | Används för att ange datum och tid från 1 januari 1900 till 6 juni 2079. Den har en noggrannhet på 1 minut. | 4 byte, fast | 1 minuter | 1900-01-01 | 2079-06-06 |
| datum | Används för att endast lagra ett datum från 1 januari 0001 till 31 december 9999 | 3 byte, fast | 1 dag | 0001-01-01 | 9999-12-31 |
| tid | Används endast för att lagra tidsvärden med en noggrannhet på 100 nanosekunder. | 5 bitgrupper | 100 nanosekunder | 00:00:00.0000000 | 23:59:59.9999999 |
| datumtidsförskjutning | Liknar datetime men har en tidszonsförskjutning | 10 bitgrupper | 100 nanosekunder | 0001-01-01 | 9999-12-31 |
| datetime2 | Används för att ange ett datum och en tid från 1 januari 0001 till 31 december 9999 | 6 bitgrupper | 100 nanosekunder | 0001-01-01 | 9999-12-31 |
Exempelfråga:
DECLARE @Datatype_Date DATE = '2030-01-01' PRINT @Datatype_Date
Produktion:
'2030-01-01'
Teckensträngsdatatyper i SQL
Denna kategori avser teckentyper. Den låter dig definiera teckendata med fast och variabel längd. Den har fyra typer av datatyper. Nedan följer teckensträngsdatatyperna med exempel.
| Data typ | BESKRIVNING | Lägre gräns | Övre gräns | Minne |
|---|---|---|---|---|
| röding | Det är en teckensträng med en fast bredd. Den lagrar maximalt 8,000 XNUMX tecken. | 0 tecken | 8000 tecken | n byte |
| varchar | Detta är en teckensträng med variabel bredd. | 0 tecken | 8000 tecken | n byte + 2 byte |
| varchar (max) | Detta är en teckensträng med variabel bredd. Den lagrar högst 1,073,741,824 XNUMX XNUMX XNUMX tecken. | 0 tecken | 2^31 tecken | n byte + 2 byte |
| text | Detta är en teckensträng med variabel bredd. Den lagrar maximalt 2 GB textdata. | 0 tecken | 2,147,483,647 tecken | n byte + 4 byte |
Exempelfråga:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype' PRINT @Datatype_Char
Produktion:
Detta är Character Datatype
Unicode-teckensträngar Datatyper i SQL
Den här kategorin lagrar hela utbudet av Unicode-tecken, som använder teckenkodningen UTF-16.
| Data typ | BESKRIVNING | Lägre gräns | Övre gräns | Minne |
|---|---|---|---|---|
| nchar | Det är en Unicode-sträng med fast bredd. | 0 tecken | 4000 tecken | 2 gånger n byte |
| nvarchar | Det är en Unicode-sträng med variabel bredd. | 0 tecken | 4000 tecken | 2 gånger n byte + 2 byte |
| ntext | Det är en Unicode-sträng med variabel bredd. | 0 tecken | 1,073,741,823 tecken | 2 gånger strängens längd |
Exempelfråga:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype' PRINT @Datatype_nChar
Produktion:
Detta är nCharacter Datatype
Binära strängdatatyper i SQL
Denna kategori innehåller binära strängar med fast och variabel längd.
| Data typ | BESKRIVNING | Lägre gräns | Övre gräns | Minne |
|---|---|---|---|---|
| binär | Det är en binär sträng med fast bredd. Den lagrar maximalt 8 000 byte. | 0 bitgrupper | 8000 bitgrupper | n byte |
| varbinär | Detta är en binär sträng med variabel bredd. Den lagrar maximalt 8 000 byte. | 0 bitgrupper | 8000 bitgrupper | Den faktiska längden på inmatad data + 2 byte |
| bild | Detta är en binär sträng med variabel bredd. Den lagrar maximalt 2 GB. | 0 bitgrupper | 2,147,483,647 bitgrupper | - |
Exempelfråga:
DECLARE @Datatype_Binary BINARY(2) = 12; PRINT @Datatype_Binary
Produktion:
0x000C
Andra datatyper i SQL
Dessa är de andra SQL Server-datatyperna, med deras beskrivningar nedan:
| Data typ | BESKRIVNING |
|---|---|
| Markör | Dess utdata är en kolumn med sp_cursor_list och sp_describe_cursor. Den returnerar namnet på markörvariabeln. |
| Rowversion | Den versionsstämplar tabellrader. |
| Hierarkiid | Denna datatyp representerar en position i en hierarki. |
| Unikidentifierare | Lagrar ett GUID, ofta konverterat från ett teckenuttryck. |
| SQL_variant | Den lagrar värden för SQL Server-stödda datatyper. |
| XML | Den lagrar XML-data i en kolumn. |
| Typ av rumslig geometri | Det representerar data i ett platt koordinatsystem. |
| Typ av rumsgeografi | Det representerar data i det runda jordens koordinatsystem. |
| bord | Den lagrar en resultatuppsättning för senare bearbetning. |
Intressanta fakta!
- Datatypen CHAR är snabbare än datatypen VARCHAR vid hämtning av data, eftersom dess fasta bredd undviker längdbokföring.ping.


