Ce este Datatype?
Un tip de date este definit ca tipul de date pe care orice coloană sau variabilă le poate stoca în MS SQL Server.
În timp ce creați orice tabel sau variabilă, pe lângă specificarea numelui, setați și tipul de date pe care îl va stoca.
Cum se utilizează tipul de date MS SQL
- Trebuie să definiți în avans, tipul de date pe care o coloană sau o variabilă le poate stoca. Determinarea tipului de date restricționează, de asemenea, utilizatorul să nu introducă date neașteptate sau nevalide.
- Puteți face o utilizare eficientă a memoriei prin atribuirea unui tip de date adecvat variabilei sau coloanei care va aloca doar cantitatea necesară de memorie de sistem pentru datele coloanei respective.
- MS SQL oferă o categorie largă de tipuri de date în funcție de nevoile utilizatorului. Ca Data, imagini binare etc.
În acest tutorial, veți învăța:
- Ce este Datatype?
- Cum se utilizează tipul de date MS SQL
- De ce să folosim DataTypes?
- Numeric exact
- Numerice aproximative
- Data si ora
- Corzi de caractere
- Șiruri de caractere Unicode
- Șir binar
- Alte tipuri de date
De ce să folosim DataTypes?
Să luăm un eșantion de pagină simplă de înscriere a aplicației site-ului web. Trei câmpuri de intrare sunt prenume, prenume și număr de contact.
Aici ar trebui să observăm că, în timp real:
- „Prenume / Prenume” va fi întotdeauna alfabetic .
- „Contactul” va fi întotdeauna numeric .
- Din imaginea de mai sus merită să definiți „Prenume / Prenume” ca personaj și „ Contact” ca număr întreg .
Este evident că în orice aplicație, toate câmpurile au unul sau alt tip de date. De exemplu, numeric, alfabetic, dată și multe altele.
De asemenea, rețineți că un tip de date diferit are cerințe de memorie diferite. Prin urmare, este mai logic să definiți coloana sau variabila cu tipul de date pe care îl va deține pentru o utilizare eficientă a memoriei.
Tipul de date disponibil în MS SQL
Serverul MS SQL acceptă următoarele categorii de tipuri de date:
- Numerică exactă
- Numerice aproximative
- Data si ora
- Corzi de caractere
- Șiruri de caractere Unicode
- Șiruri binare
- Alte tipuri de date
Numeric exact
Numericul exact are nouă tipuri de tipuri de sub-date. Tipuri de date numerice exacte
Tipul de date | Descriere | Limita inferioara | Limita superioară | Memorie |
---|---|---|---|---|
bigint | Stochează numere întregi în intervalul dat | −2 63 (−9.223.372, 036.854.775.808) | 2 63−1 (−9.223.372, 036.854.775.807) | 8 octeți |
int | Stochează numere întregi în intervalul dat | −2 31 (−2,147, 483,648) | 2 31−1 (−2.147, 483.647) | 4 octeți |
smallint | Stochează numere întregi în intervalul dat | −2 15 (−32.767) | 2 15 (−32.768) | 2 octeți |
tinyint | Stochează numere întregi în intervalul dat | 0 | 255 | 1 octet |
pic | Poate lua valori 0, 1 sau NULL. | 0 | 1 | 1 octet / coloană de 8 biți |
zecimal | Folosit pentru scară și numere fixe de precizie | −10 38 + 1 | 10 381−1 | 5 până la 17 octeți |
numeric | Folosit pentru scară și numere fixe de precizie | −10 38 + 1 | 10 381−1 | 5 până la 17 octeți |
bani | Date monetare utilizate | −922.337, 203, 685.477,5808 | +922.337, 203, 685.477,5807 | 8 octeți |
bani mici | Date monetare utilizate | −214.478,3648 | +214.478,3647 | 4 octeți |
Exemple:
Interogare:
DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int
Ieșire: 2
Sintaxă: Zecimală (P, S)
Aici,
- P este precizie
- S este scara
Interogare:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31PRINT @Datatype_Decimal
Ieșire: 2.31
Numerice aproximative
Categoria Numerică aproximativă include valori în virgulă mobilă și reale. Acestea sunt utilizate mai ales în calculele științifice. Tip de date numerice aproximative
Tipul de date | Descriere | Limita inferioara | Limita superioară | Memorie | Precizie |
---|---|---|---|---|---|
plutitor (n) | Folosit pentru un număr de precizie flotant | −1.79E + 308 | 1.79E + 308 | Depinde de valoarea lui n | 7 cifre |
real | Folosit pentru un număr de precizie flotant | −3.40E + 38 | 3.40E + 38 | 4 octeți | 15 cifre |
Syntax: FLOAT [(n)]
Aici, n este numărul de biți care sunt utilizați pentru a stoca mantisa numărului plutitor în notație științifică. În mod implicit, valoarea lui n este 53.
Când utilizatorul definește un tip de date ca float, n ar trebui să fie o valoare cuprinsă între 1 și 53.
SQL Server tratează n ca una dintre cele două valori posibile. Dacă 1 <= n <= 24, n este tratat ca 24. Dacă 25 <= n <= 53, n este tratat ca 53.
Exemplu de interogare:
DECLARE @Datatype_Float FLOAT(24) = 22.1234PRINT @Datatype_Float
Ieșire: 22.1234
Data si ora
Stochează date de tip Data și ora. Data și ora Tip de date
Tipul de date | Descriere | Dimensiunea stocării | Precizie | Gama inferioară | Gama superioară |
---|---|---|---|---|---|
DateTime | Folosit pentru specificarea unei date și orei de la 1 ianuarie 1753 la 31 decembrie 9999. Are o precizie de 3,33 milisecunde. | 8 octeți | Rotunjit la pași de .000, .003, .007 | 1753-01-01 | 9999-12-31 |
smalldatetime | Folosit pentru specificarea unei date și a orelor de la 1 ianuarie 0001 până la 31 decembrie 9999. Are o precizie de 100 nanosecunde | 4 octeți, fix | 1 minut | 01-01 1900 | 2079-06-06 |
Data | Folosit pentru a stoca numai data de 1 ianuarie 0001 până la 31 decembrie 9999 | 3 octeți, fix | 1 zi | 0001-01-01 | 9999-12-31 |
timp | Folosit pentru stocarea numai a valorilor de timp cu o precizie de 100 nanosecunde. | 5 octeți | 100 nanosecunde | 00: 00: 00.0000000 | 23: 59: 59.9999999 |
datetimeoffset | Similar cu ora de date, dar are un decalaj de fus orar | 10 octeți | 100 nanosecunde | 0001-01-01 | 9999-12-31 |
datetime2 | Folosit pentru specificarea unei date și a orelor de la 1 ianuarie 0001 până la 31 decembrie 9999 | 6 octeți | 100 nanosecunde | 0001-01-01 | 9999-12-31 |
Exemplu de interogare:
DECLARE @Datatype_Date DATE = '2030-01-01'PRINT @Datatype_Date
Ieșire: „2030-01-01”
Corzi de caractere
Această categorie este legată de un tip de caracter. Permite utilizatorului să definească tipul de date al caracterului care poate avea o lungime fixă și variabilă. Are patru tipuri de tipuri de date. Șiruri de caractere Tipuri de date
Tipul de date | Descriere | Limita inferioara | Limita superioară | Memorie |
---|---|---|---|---|
char | Este un șir de caractere cu o lățime fixă. Stochează maximum 8.000 de caractere. | 0 caractere | 8000 de caractere | n octeți |
varchar | Acesta este un șir de caractere cu lățime variabilă | 0 caractere | 8000 de caractere | n octeți + 2 octeți |
varchar (max) | Acesta este un șir de caractere cu o lățime variabilă. Stochează maximum 1.073.741.824 de caractere. | 0 caractere | 2 31 caractere | n octeți + 2 octeți |
text | Acesta este un șir de caractere cu o lățime variabilă. Stochează maximum 2 GB de date text. | 0 caractere | 2.147.483.647 caractere | n octeți + 4 octeți |
Exemplu de interogare:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype'PRINT @Datatype_Char
Ieșire: acesta este tipul de date de caracter
Șiruri de caractere Unicode
Această categorie stochează întreaga gamă de caractere Unicode care utilizează codarea caracterelor UTF-16. Tipuri de date pentru șiruri de caractere Unicode
Tipul de date | Descriere | Limita inferioara | Limita superioară | Memorie |
---|---|---|---|---|
nchar | Este un șir Unicode cu lățime fixă | 0 caractere | 4000 de caractere | De 2 ori n octeți |
nvarchar | Este un șir unicode cu lățime variabilă | 0 caractere | 4000 de caractere | De 2 ori n octeți + 2 octeți |
ntext | Este un șir unicode cu lățime variabilă | 0 caractere | 1.073.741.823 char | De 2 ori lungimea șirului |
Exemplu de interogare:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'PRINT @Datatype_nChar
Ieșire: Acesta este tipul de date nCharacter
Șir binar
Această categorie conține un șir binar de lungime fixă și variabilă. Tipuri de date de șiruri binare
Tipul de date | Descriere | Limita inferioara | Limita superioară | Memorie |
---|---|---|---|---|
binar | Este un șir binar cu lățime fixă. Acesta stochează maximum 8.000 de octeți. | 0 octeți | 8000 octeți | n octeți |
varbinar | Acesta este un șir binar cu lățime variabilă. Acesta stochează maximum 8.000 de octeți | 0 octeți | 8000 octeți | Lungimea reală a datelor introduse + 2 octeți |
imagine | Acesta este un șir binar cu lățime variabilă. Stochează maximum 2 GB. | 0 octeți | 2.147.483.647 octeți |
Exemplu de interogare:
DECLARE @Datatype_Binary BINARY(2) = 12;PRINT @Datatype_Binary
Ieșire: 0x000C
Alte tipuri de date
Acestea sunt alte tipuri de date diferite, cu descrierea de mai jos-
Tipul de date | Descriere |
---|---|
Cursor | Ieșirea sa este o coloană de sp_cursor_list și sp_describe_cursor. Returnează numele variabilei cursorului. |
Versiunea rând | Versiunea ștampilează rândurile de tabel |
Ierarhid | Acest tip de date reprezintă o poziție în ierarhie |
Identificator unic | Conversia dintr-o expresie de caracter. |
Sql_variant | Stochează valorile tipurilor de date acceptate de serverul SQL. |
XML | Stochează date XML într-o coloană. |
Tipul de geometrie spațială | Reprezintă datele într-un sistem plat de coordonate. |
Tipul de geografie spațială | Reprezintă date în sistemul de coordonate rotund-pământ. |
masa | Stochează un set de rezultate pentru procesare ulterioară. |
Fapte interesante!
- Tipul de date CHAR este mai rapid decât VARCHAR în timpul preluării datelor.
Rezumat:
- Fiecare coloană din tabele se definește cu tipul său de date în timpul creării tabelului.
- Există șase categorii principale și o altă categorie diversă. Alte diverse au nouă subcategorii de tipuri de date disponibile.