Wat is datatype?
Een datatype wordt gedefinieerd als het type gegevens dat elke kolom of variabele kan opslaan in MS SQL Server.
Terwijl u een tabel of variabele maakt, geeft u niet alleen de naam op, maar stelt u ook het type gegevens in dat wordt opgeslagen.
Hoe MS SQL-datatype te gebruiken
- U moet van tevoren bepalen welk type gegevens een kolom of variabele kan opslaan. Door het gegevenstype te bepalen, kan de gebruiker ook geen onverwachte of ongeldige gegevens invoeren.
- U kunt het geheugen efficiënt gebruiken door een geschikt gegevenstype toe te wijzen aan een variabele of kolom, waardoor alleen de vereiste hoeveelheid systeemgeheugen wordt toegewezen aan de gegevens van de respectieve kolom.
- MS SQL biedt een brede categorie van het datatype volgens de behoeften van de gebruiker. Zoals datum, binaire afbeeldingen, enz.
In deze tutorial leer je:
- Wat is datatype?
- Hoe MS SQL-datatype te gebruiken
- Waarom DataTypes gebruiken?
- Exact Numeriek
- Numeriek bij benadering
- Datum en tijd
- Tekenreeksen
- Unicode-tekenreeksen
- Binaire tekenreeks
- Andere datatypes
Waarom DataTypes gebruiken?
Laten we, neem een monster van eenvoudige Sign up pagina van de website van application.Three invoervelden zijn voornaam, achternaam & Contact nummer.
Hier moeten we opmerken dat in realtime:
- "Voor- / achternaam" zal altijd alfabetisch zijn .
- "Contact" is altijd numeriek .
- Op de bovenstaande afbeelding is het de moeite waard om "Voornaam / Achternaam" te definiëren als een teken en " Contact" als een geheel getal .
Het is duidelijk dat in elke toepassing alle velden het ene of het andere type gegevens bevatten. Bijv. Numeriek, alfabetisch, datum en nog veel meer.
Merk ook op dat verschillende datatypes verschillende geheugenvereisten hebben. Daarom is het logischer om de kolom of variabele te definiëren met het gegevenstype dat deze zal bevatten voor efficiënt geheugengebruik.
Gegevenstype beschikbaar in MS SQL
MS SQL server ondersteunt de volgende categorieën van gegevenstypes:
- Exact numeriek
- Numeriek bij benadering
- Datum en tijd
- Tekenreeksen
- Unicode-tekenreeksen
- Binaire tekenreeksen
- Andere gegevenstypen
Exact Numeriek
Exact numeriek heeft negen soorten subgegevenstypen. Exacte numerieke gegevenstypen
Data type | Omschrijving | Ondergrens | Bovenlimiet | Geheugen |
---|---|---|---|---|
bigint | Het slaat hele getallen op in het opgegeven bereik | -2 63 (-9.223.372, 036.854.775.808) | 2 63-1 (-9.223.372, 036.854.775.807) | 8 bytes |
int | Het slaat hele getallen op in het opgegeven bereik | -2 31 (-2.147, 483.648) | 2 31−1 (-2.147, 483.647) | 4 bytes |
smallint | Het slaat hele getallen op in het opgegeven bereik | -2 15 (-32.767) | 2 15 (-32.768) | 2 bytes |
tinyint | Het slaat hele getallen op in het opgegeven bereik | 0 | 255 | 1 byte |
beetje | Het kan 0, 1 of NULL-waarden hebben. | 0 | 1 | 1 byte / 8-bits kolom |
decimale | Wordt gebruikt voor schaal en cijfers met vaste precisie | −10 38 + 1 | 10 381−1 | 5 tot 17 bytes |
numeriek | Wordt gebruikt voor schaal en cijfers met vaste precisie | −10 38 + 1 | 10 381−1 | 5 tot 17 bytes |
geld | Gebruikte geldgegevens | -922.337, 203, 685.477,5808 | +922.337, 203, 685.477.5807 | 8 bytes |
klein geld | Gebruikte geldgegevens | −214.478,3648 | +214.478.3647 | 4 bytes |
Voorbeelden:
Vraag:
DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int
Uitgang: 2
Syntaxis: Decimaal (P, S)
Hier,
- P is precisie
- S is schaal
Vraag:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31PRINT @Datatype_Decimal
Uitgang: 2,31
Numeriek bij benadering
Geschatte numerieke categorie omvat drijvende komma en reële waarden. Ze worden meestal gebruikt in wetenschappelijke berekeningen. Geschat numeriek gegevenstype
Data type | Omschrijving | Ondergrens | Bovenlimiet | Geheugen | Precisie |
---|---|---|---|---|---|
zweven (n) | Wordt gebruikt voor een getal met zwevende precisie | -1,79E + 308 | 1.79E + 308 | Hangt af van de waarde van n | 7 cijfers |
echt | Wordt gebruikt voor een getal met zwevende precisie | -3,40E + 38 | 3,40E + 38 | 4 bytes | 15 cijfers |
Syntax: FLOAT [(n)]
Hier is n het aantal bits dat wordt gebruikt om de mantisse van het float- getal in wetenschappelijke notatie op te slaan . Standaard is de waarde van n 53.
Als de gebruiker een gegevenstype zoals float definieert, moet n een waarde tussen 1 en 53 zijn.
SQL Server behandelt n als een van de twee mogelijke waarden. Als 1 <= n <= 24, wordt n behandeld als 24. Als 25 <= n <= 53, wordt n behandeld als 53.
Voorbeeldzoekopdracht:
DECLARE @Datatype_Float FLOAT(24) = 22.1234PRINT @Datatype_Float
Uitgang: 22.1234
Datum en tijd
Het slaat gegevens op van het type Datum en tijd. Datum- en tijdgegevenstype
Data type | Omschrijving | Opslag grootte | Nauwkeurigheid | Lager bereik | Bovenste bereik |
---|---|---|---|---|---|
Datum Tijd | Wordt gebruikt voor het specificeren van een datum en tijd van 1 januari 1753 tot 31 december 9999. Het heeft een nauwkeurigheid van 3,33 milliseconden. | 8 bytes | Afgerond op stappen van .000, .003, .007 | 1753/01/01 | 9999-12-31 |
smalldatetime | Wordt gebruikt voor het specificeren van een datum en tijd van 1 januari 0001 tot 31 december 9999. Het heeft een nauwkeurigheid van 100 nanoseconden | 4 bytes, opgelost | 1 minuut | 1900/01/01 | 06-06-2079 |
datum | Wordt alleen gebruikt om de datum op te slaan van 1 januari 0001 tot 31 december 9999 | 3 bytes, opgelost | 1 dag | 0001-01-01 | 9999-12-31 |
tijd | Wordt gebruikt voor het opslaan van alleen tijdwaarden met een nauwkeurigheid van 100 nanoseconden. | 5 bytes | 100 nanoseconden | 00: 00: 00.0000000 | 23:59: 59,9999999 |
datetimeoffset | Vergelijkbaar met datatime maar heeft een tijdzone-offset | 10 bytes | 100 nanoseconden | 0001-01-01 | 9999-12-31 |
datetime2 | Wordt gebruikt voor het specificeren van een datum en tijd van 1 januari 0001 tot 31 december 9999 | 6 bytes | 100 nanoseconden | 0001-01-01 | 9999-12-31 |
Voorbeeldzoekopdracht:
DECLARE @Datatype_Date DATE = '2030-01-01'PRINT @Datatype_Date
Uitgang: '2030-01-01'
Tekenreeksen
Deze categorie is gerelateerd aan een tekentype. Hiermee kan de gebruiker het gegevenstype van het teken definiëren dat een vaste en variabele lengte kan hebben. Het heeft vier soorten gegevenstypen. Tekenreeksen Gegevenstypen
Data type | Omschrijving | Ondergrens | Bovenlimiet | Geheugen |
---|---|---|---|---|
char | Het is een tekenreeks met een vaste breedte. Het kan maximaal 8.000 tekens bevatten. | 0 tekens | 8000 tekens | n bytes |
varchar | Dit is een tekenreeks met variabele breedte | 0 tekens | 8000 tekens | n bytes + 2 bytes |
varchar (max.) | Dit is een tekenreeks met een variabele breedte. Er kunnen maximaal 1.073.741.824 tekens in worden opgeslagen. | 0 tekens | 2 31 tekens | n bytes + 2 bytes |
tekst | Dit is een tekenreeks met een variabele breedte. Het slaat maximaal 2 GB aan tekstgegevens op. | 0 tekens | 2.147.483.647 tekens | n bytes + 4 bytes |
Voorbeeldzoekopdracht:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype'PRINT @Datatype_Char
Uitvoer: dit is het karaktergegevenstype
Unicode-tekenreeksen
Deze categorie bevat het volledige bereik van Unicode-tekens die de UTF-16-tekencodering gebruiken. Gegevenstypen in Unicode-tekenreeks
Data type | Omschrijving | Ondergrens | Bovenlimiet | Geheugen |
---|---|---|---|---|
nchar | Het is een Unicode-reeks met een vaste breedte | 0 tekens | 4000 tekens | 2 keer n bytes |
nvarchar | Het is een unicode-reeks met een variabele breedte | 0 tekens | 4000 tekens | 2 keer n bytes + 2 bytes |
ntext | Het is een unicode-reeks met een variabele breedte | 0 tekens | 1.073.741.823 kar | 2 keer de snaarlengte |
Voorbeeldzoekopdracht:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'PRINT @Datatype_nChar
Uitvoer: dit is het nCharacter Datatype
Binaire tekenreeks
Deze categorie bevat een binaire reeks met een vaste en variabele lengte. Binaire String Gegevenstypen
Data type | Omschrijving | Ondergrens | Bovenlimiet | Geheugen |
---|---|---|---|---|
binair | Het is een binaire tekenreeks met een vaste breedte. Het slaat maximaal 8.000 bytes op. | 0 bytes | 8000 bytes | n bytes |
varbinary | Dit is een binaire reeks met een variabele breedte. Het slaat maximaal 8.000 bytes op | 0 bytes | 8000 bytes | De werkelijke lengte van de ingevoerde gegevens + 2 bytes |
beeld | Dit is een binaire reeks met een variabele breedte. Er kan maximaal 2 GB in worden opgeslagen. | 0 bytes | 2.147.483.647 bytes |
Voorbeeldzoekopdracht:
DECLARE @Datatype_Binary BINARY(2) = 12;PRINT @Datatype_Binary
Uitgang: 0x000C
Andere datatypes
Dit zijn andere verschillende gegevenstypen met de onderstaande beschrijving-
Data type | Omschrijving |
---|---|
Cursor | De uitvoer is een kolom met sp_cursor_list en sp_describe_cursor. Het geeft de naam van de cursorvariabele terug. |
Rij-versie | It-versie stempelt tabelrijen. |
Hiërarchie-id | Dit datatype vertegenwoordigt een positie in de hiërarchie |
Unieke identificatie | Omzetting van een tekenuitdrukking. |
SQL_variant | Het slaat waarden op van door SQL server ondersteunde datatypes. |
XML | Het slaat XML-gegevens op in een kolom. |
Type ruimtelijke geometrie | Het vertegenwoordigt gegevens in een plat coördinatensysteem. |
Type ruimtelijke geografie | Het vertegenwoordigt gegevens in het rond-aarde coördinatensysteem. |
tafel | Het slaat een resultatenset op voor latere verwerking. |
Interessante feiten!
- CHAR-gegevenstype is sneller dan VARCHAR bij het ophalen van gegevens.
Overzicht:
- Elke kolom in tabellen definieert met zijn datatype tijdens het maken van een tabel.
- Er zijn zes hoofdcategorieën en een andere diverse categorie. Andere diversen hebben negen subcategorieën van gegevenstypen beschikbaar.