Vad är datatyp?
En datatyp definieras som den typ av data som en kolumn eller variabel kan lagra i MS SQL Server.
Medan du skapar en tabell eller variabel, förutom att ange namnet, ställer du också in vilken typ av data den ska lagras.
Hur man använder MS SQL-datatyp
- Du måste definiera i förväg vilken typ av data en kolumn eller variabel kan lagra. Att bestämma datatyp begränsar också användaren från att ange oväntade eller ogiltiga data.
- Du kan utnyttja minnet effektivt genom att tilldela en lämplig datatyp till variabel eller kolumn som endast tilldelar den erforderliga mängden systemminne för respektive kolumndata.
- MS SQL erbjuder en bred kategori av datatypen enligt användarens behov. Som Date, binära bilder etc.
I den här handledningen lär du dig:
- Vad är datatyp?
- Hur man använder MS SQL-datatyp
- Varför använda DataTypes?
- Exakt numeriskt
- Ungefärlig numerisk
- Datum och tid
- Karaktärssträngar
- Unicode-teckensträngar
- Binär sträng
- Andra datatyper
Varför använda DataTypes?
Låt oss ta ett exempel på en enkel registreringssida för webbplatsapplikationen. Tre inmatningsfält är förnamn, efternamn och kontaktnummer.
Här bör vi notera att i realtid:
- "För- / efternamn" kommer alltid att vara alfabetiskt .
- "Kontakt" kommer alltid att vara numeriskt .
- Från bilden ovan är det värt att definiera "För- / 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 numeriska, alfabetiska, 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 som den kommer att innehålla för effektiv användning av minnet.
Datatyp tillgänglig i MS SQL
MS SQL-server stöder följande kategorier av datatyp:
- Exakt numeriskt
- Ungefärliga siffror
- Datum och tid
- Teckensträngar
- Unicode-teckensträngar
- Binära strängar
- Andra datatyper

Exakt numeriskt
Exakt numeriskt har nio typer av underdatatyper. Exakta numeriska datatyper
Data typ | Beskrivning | Lägre gräns | Övre gräns | Minne |
---|---|---|---|---|
bigint | Det lagrar hela siffror i det angivna intervallet | −2 63 (−9,223,372, 036,854,775,808) | 2 63−1 (−9,223,372, 036,854,775,807) | 8 byte |
int | Det lagrar hela siffror i det angivna intervallet | −2 31 (−2,147, 483,648) | 2 31−1 (−2,147, 483,647) | 4 bytes |
smallint | Det lagrar hela siffror i det angivna intervallet | −2 15 (−32,767) | 2 15 (−32,768) | 2 byte |
tinyint | Det lagrar hela siffror i det angivna intervallet | 0 | 255 | 1 byte |
bit | Det kan ta 0, 1 eller NULL-värden. | 0 | 1 | 1 byte / 8bit kolumn |
decimal- | Används för skala och fasta precisionsnummer | −10 38 + 1 | 10 381−1 | 5 till 17 byte |
numerisk | Används för skala och fasta precisionsnummer | −10 38 + 1 | 10 381−1 | 5 till 17 byte |
pengar | Använda monetära data | −922,337, 203, 685,477,5808 | +922 337, 203, 685 477,5807 | 8 byte |
småpengar | Använda monetära data | −214,478,3648 | +214 478,3647 | 4 bytes |
Exempel:
Fråga:
DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int
Utgång: 2
Syntax: decimal (P, S)
Här,
- P är precision
- S är skala
Fråga:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31PRINT @Datatype_Decimal
Utgång: 2.31
Ungefärlig numerisk
Ungefärlig numerisk kategori inkluderar flytande punkt och verkliga värden. De används mest i vetenskapliga beräkningar. Ungefärlig numerisk datatyp
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,79 E + 308 | Beror på värdet av n | 7 siffror |
verklig | Används för ett flytande precisionsnummer | −3.40E + 38 | 3.40E + 38 | 4 bytes | 15 siffror |
Syntax: FLOAT [(n)]
Här, n är antalet bitar som används för att lagra mantissan av flottören tal i grundpotens. Som standard är värdet n 53.
När användaren definierar en datatyp som float ska 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.
Exempel på fråga:
DECLARE @Datatype_Float FLOAT(24) = 22.1234PRINT @Datatype_Float
Utgång: 22.1234
Datum och tid
Den lagrar data av typen Datum och tid. Datum och tid Datatyp
Data typ | Beskrivning | Förvaringsstorlek | Noggrannhet | Lägre intervall | Övre intervall |
---|---|---|---|---|---|
Datum Tid | Används för att ange ett datum och tid från 1 januari 1753 till 31 december 9999. Den har en noggrannhet på 3,33 millisekunder. | 8 byte | Avrundat till steg om .000, .003, .007 | 1753-01-01 | 9999-12-31 |
smalldatetime | Används för att ange ett datum och tid från 1 januari 0001 till 31 december 9999. Den har en noggrannhet på 100 nanosekunder | 4 byte, fast | 1 minut | 1900-01-01 | 2079-06-06 |
datum | Används för att endast lagra datum från 1 januari 0001 till 31 december 9999 | 3 byte, fast | 1 dag | 0001-01-01 | 9999-12-31 |
tid | Används för att bara lagra tidsvärden med en noggrannhet på 100 nanosekunder. | 5 byte | 100 nanosekunder | 00: 00: 00.0000000 | 23: 59: 59.9999999 |
datetimeoffset | Liknar datatid men har en tidszonsförskjutning | 10 byte | 100 nanosekunder | 0001-01-01 | 9999-12-31 |
datetime2 | Används för att ange ett datum och tid från 1 januari 0001 till 31 december 9999 | 6 byte | 100 nanosekunder | 0001-01-01 | 9999-12-31 |
Exempel på fråga:
DECLARE @Datatype_Date DATE = '2030-01-01'PRINT @Datatype_Date
Utgång: '2030-01-01'
Karaktärssträngar
Denna kategori är relaterad till en karaktärstyp. Det gör det möjligt för användaren att definiera datatypen för tecken som kan ha fast och variabel längd. Den har fyra typer av datatyper. Datatyper för teckensträngar
Data typ | Beskrivning | Lägre gräns | Övre gräns | Minne |
---|---|---|---|---|
röding | Det är en teckensträng med en fast bredd. Den lagrar högst 8000 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 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 |
Exempel på fråga:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype'PRINT @Datatype_Char
Output: Detta är Character Datatype
Unicode-teckensträngar
Den här kategorin lagrar hela utbudet av Unicode-tecken som använder UTF-16-teckenkodning. Unicode-teckensträngdatatyper
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 char | 2 gånger stränglängden |
Exempel på fråga:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'PRINT @Datatype_nChar
Output: Detta är nCharacter Datatype
Binär sträng
Denna kategori innehåller en binär sträng med fast och variabel längd. Binära strängdatatyper
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 högst 8000 byte. | 0 byte | 8000 byte | n byte |
varbinär | Detta är en binär sträng med variabel bredd. Den lagrar högst 8000 byte | 0 byte | 8000 byte | Den faktiska längden på inmatad data + 2 byte |
bild | Detta är en binär sträng med variabel bredd. Den lagrar högst 2 GB. | 0 byte | 2 147 473 647 byte |
Exempel på fråga:
DECLARE @Datatype_Binary BINARY(2) = 12;PRINT @Datatype_Binary
Utgång: 0x000C
Andra datatyper
Dessa är andra olika datatyper med beskrivningen 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. |
Radversion | Den version stämplar tabellrader. |
Hierarkyid | Denna datatyp representerar en position i hierarkin |
Unikt identifierare | Konvertering från ett teckenuttryck. |
Sql_variant | Det lagrar värden på datatyper som stöds av SQL-server. |
XML | Den lagrar XML-data i en kolumn. |
Spatial Geometry type | Det representerar data i ett platt koordinatsystem. |
Typ av geografisk geografi | Den representerar data i det jordjordiska koordinatsystemet. |
tabell | Den lagrar en resultatsats för senare bearbetning. |
Intressanta fakta!
- CHAR-datatypen är snabbare än VARCHAR när data hämtas.
Sammanfattning:
- Varje kolumn i tabeller definieras med sin datatyp under skapandet av tabellen.
- Det finns sex huvudkategorier och en annan diverse kategori. Andra diverse har nio underkategorier av datatyper tillgängliga.