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.
