SQL Server-datatyper med exempel
Vad är datatyp?
A Data typ i SQL server definieras som den typ av data som vilken kolumn eller variabel som helst kan lagra. Det är en typ av data som ett objekt innehåller som heltal, tecken, sträng, etc. När du skapar en tabell eller variabel, förutom att ange namnet, ställer du också in vilken typ av data den ska lagra.
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 fastställa datatyp begränsar också användaren från att ange oväntade eller ogiltiga data.
- Du kan använda minnet effektivt genom att tilldela en lämplig datatyp till variabel eller kolumn som endast tilldelar den erforderliga mängden systemminne för respektive kolumns data.
- MS SQL erbjuder en bred kategori av grundläggande datatyper i SQL enligt användarens behov som datum, binära bilder, etc.
Varför använda DataTypes?
Låt oss ta ett exempel på enkla Registrera sidan av webbplatsansökan. 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 alfabetisk.
- "Kontakt" kommer alltid att vara numerisk.
- Från bilden ovan är det värt att definiera "För-& efternamn" som en karaktär och "Kontakt" som en heltal.
Det är uppenbart att i alla applikationer har alla fält den ena eller andra typen av data. T.ex. 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 variabel med den datatyp den kommer att hålla för effektiv användning av minnet.
Datatyp tillgänglig i MS SQL Server
Här är en lista över MS SQL-serverdatatyper:
MS SQL server stöder följande kategorier av datatyp:
- Exakt numeriskt
- Ungefärlig numerisk
- Datum och tid
- Karaktärssträngar
- Unicode teckensträngar
- Binära strängar
- Andra datatyper
Exakta numeriska datatyper i SQL
Exakt numerisk har nio typer av subdatatyper i SQL-servern.
Exakta numeriska datatyper
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) | 2^63−1 (−9,223,372, 036,854,775,807) | 8 bitgrupper |
int | Den lagrar heltal i det angivna intervallet | −2^31 (−2,147, 483,648) | 2^31−1 (−2,147, 483,647) | 4 bitgrupper |
smallint | Den lagrar heltal i det angivna intervallet | −2^15 (−32,767 XNUMX) | 2^15 (-32,768 XNUMX) | 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/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ände monetära data | −922,337, 203, 685,477.5808 | +922,337, 203, 685,477.5807 | 8 bitgrupper |
småpengar | Använde monetära data | -214,478.3648 | +214,478.3647 | 4 bitgrupper |
Exakta numeriska datatyper in SQL-server med exempel:
Fråga:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
Produktion
2
syntax
Decimal (P,S)
Här,
- P är precision
- S är skala
Fråga:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31 PRINT @Datatype_Decimal
Produktion
2.31
Ungefärliga numeriska datatyper i SQL
SQL Ungefärlig numerisk kategori inkluderar flyttal och verkliga värden. Dessa datatyper i SQL 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.79E + 308 | Beror på värdet på n | 7 Digit |
verklig | Används för ett flytande precisionsnummer | −3.40E+38 | 3.40E + 38 | 4 bitgrupper | 15 Digit |
Syntax: FLOAT [(n)]
Här, n är antalet bitar som används för att lagra mantissan för flyta nummer i vetenskaplig notation. Som standard är värdet på n 53.
När användaren definierar en datatyp som float, n bör 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 lagrar data av typen Datum och tid.
Datum och tid Datatyp
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 ett datum och en tid från 1 januari 0001 till 31 december 9999. Den har en noggrannhet på 100 nanosekunder | 4 byte, fast | 1 minuter | 1900-01-01 | 2079-06-06 |
datum | Används endast för att 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 lagra endast tidsvärden med en noggrannhet på 100 nanosekunder. | 5 bitgrupper | 100 nanosekunder | 00:00:00.0000000 | 23:59:59.9999999 |
datumtidsförskjutning | Liknar datatid men har en tidszonfö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 är relaterad till en teckentyp. Det tillåter användaren att definiera datatypen för tecken som kan vara av fast och variabel längd. Den har fyra typer av datatyper. Nedan finns teckensträngen SQL-serverdatatyper med exempel.
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 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
Denna kategori lagrar hela utbudet av Unicode-tecken som använder teckenkodningen UTF-16.
Unicode-teckensträngsdatatyper
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 röding | 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 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 maximalt 8,000 XNUMX byte. | 0 bitgrupper | 8000 bitgrupper | n byte |
varbinär | Detta är en binär sträng med variabel bredd. Den lagrar maximalt 8,000 XNUMX 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 max 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 andra olika SQL-serverdatatyper med beskrivningen nedan-
Data typ | BESKRIVNING |
---|---|
Markör | Dess utdata är en kolumn av sp_cursor_list och sp_describe_cursor. Den returnerar namnet på markörvariabeln. |
Radversion | Dens version stämplar tabellrader. |
Hierarkiid | Denna datatyp representerar en position i hierarkin |
Unikidentifierare | Konvertering från ett teckenuttryck. |
SQL_variant | Den lagrar värden för SQL-serverstö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!
- CHAR datatyp är snabbare än SQL VARCHAR-datatypen när data hämtas.
Sammanfattning
- Varje kolumn i tabeller definieras med sin datatyp under tabellskapandet.
- Det finns sex huvudkategorier och en annan diverse kategori. Övrigt diverse har nio underkategorier av SQL-server tillgängliga datatyper och storlekar.