Tipuri de date SQL Server cu exemple
โก Rezumat inteligent
Tipurile de date SQL Server definesc tipul de valoare pe care o coloanฤ sau o variabilฤ o poate stoca, cum ar fi un numฤr รฎntreg, zecimal, un caracter, o datฤ sau un numฤr binar. Alegerea tipului corect impune validitatea datelor ศi utilizeazฤ memoria eficient.

Ce este tipul de date?
Un tip de date รฎn MS SQL Server este definit ca tipul de date pe care orice coloanฤ sau variabilฤ le poate stoca. Este tipul de date pe care un obiect le deศine, cum ar fi un numฤr รฎntreg, un caracter sau un ศir de caractere. La crearea oricฤrui tabel or variabil, pe lรขngฤ specificarea numelui, setaศi ศi tipul de date pe care le va stoca.
Cum se utilizeazฤ tipul de date MS SQL
Trebuie sฤ definiศi รฎn prealabil tipul de date pe care o coloanฤ sau o variabilฤ le poate stoca. Determinarea tipului de date restricศioneazฤ, de asemenea, utilizatorul de la introducerea oricฤror date neaศteptate sau nevalide.
Puteศi utiliza eficient memoria prin atribuirea unui tip de date adecvat unei variabile sau coloane, ceea ce alocฤ doar cantitatea necesarฤ de memorie de sistem pentru datele coloanei respective.
MS SQL oferฤ o gamฤ largฤ de tipuri de date de bazฤ รฎn SQL pentru a se potrivi nevoilor utilizatorilor, cum ar fi date, date binare, imagini ศi multe altele.
De ce sฤ folosiศi DataTypes?
Luaศi รฎn considerare exemplul unei pagini simple de รฎnscriere pentru o aplicaศie web. Cele trei cรขmpuri de introducere sunt Prenume, Nume ศi Numฤr de contact.
Aici trebuie sฤ remarcฤm cฤ, รฎn scenarii reale:
- โPrenume/Numeโ va fi รฎntotdeauna รฎn ordine alfabeticฤ.
- โNumฤrul de contactโ va fi รฎntotdeauna numeric.
Exemplul de mai jos ilustreazฤ aceste cรขmpuri รฎntr-un formular de รฎnscriere.
Din imaginea de mai sus, este logic sฤ definim โPrenume/Numeโ ca un caracter ศi โContactโ ca un numฤr รฎntreg.
Este evident cฤ รฎn orice aplicaศie, toate cรขmpurile au unul sau altul tip de date, de exemplu numerice, alfabetice, de datฤ ศi multe altele.
De asemenea, reศineศi cฤ diferite tipuri de date au cerinศe de memorie diferite. Prin urmare, este mai logic sฤ definiศi coloana sau variabila cu tipul de date pe care รฎl va conศine, pentru o utilizare eficientฤ a memoriei.
Tip de date disponibil รฎn MS SQL Server
Iatฤ lista tipurilor de date MS SQL Server. MS SQL Server acceptฤ urmฤtoarele categorii de tipuri de date:
- Numeric exact
- Numericฤ aproximativฤ
- Data si ora
- ศiruri de caractere
- ศiruri de caractere Unicode
- ศiruri binare
- Alte tipuri de date
Diagrama de mai jos grupeazฤ tipurile de date MS SQL Server รฎn aceste categorii.
Tipuri exacte de date numerice รฎn SQL
Tipurile de date numerice exacte sunt nouฤ subtipuri รฎn SQL Server. Fiecare tip stocheazฤ numere รฎntregi sau cu virgulฤ fixฤ โโรฎntr-un interval definit.
| 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) | Bytes 8 |
| int | Stocheazฤ numere รฎntregi รฎn intervalul dat | โ2^31 (โ2,147,483,648) | 2^31โ1 (2,147,483,647) | Bytes 4 |
| smallint | Stocheazฤ numere รฎntregi รฎn intervalul dat | โ2^15 (โ32,768) | 2^15โ1 (32,767) | Bytes 2 |
| tinyint | Stocheazฤ numere รฎntregi รฎn intervalul dat | 0 | 255 | 1 octet |
| pic | Poate lua valori 0, 1 sau NULL. | 0 | 1 | Coloanฤ de 1 octet / 8 biศi |
| zecimal | Folosit pentru scarฤ ศi numere fixe de precizie | โ10^38+1 | 10^38โ1 | 5 pรขnฤ la 17 octeศi |
| numeric | Folosit pentru scarฤ ศi numere fixe de precizie | โ10^38+1 | 10^38โ1 | 5 pรขnฤ la 17 octeศi |
| bani | Folosit pentru date monetare | -922,337,203,685,477.5808 | +922,337,203,685,477.5807 | Bytes 8 |
| bani mici | Folosit pentru date monetare | -214,478.3648 | +214,478.3647 | Bytes 4 |
Tipuri de date numerice exacte รฎn SQL Server cu exemple:
Solicitare:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
ieศire:
2
Sintaxฤ:
Decimal (P,S)
Aici, P este precizia, iar S este scala.
Solicitare:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31 PRINT @Datatype_Decimal
ieศire:
2.31
Tipuri de date numerice aproximative รฎn SQL
Categoria numericฤ aproximativฤ SQL include valori รฎn virgulฤ mobilฤ ศi valori reale. Aceste tipuri de date sunt utilizate รฎn principal รฎn calculele ศtiinศifice.
| 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 | 15 cifre |
| real | Folosit pentru un numฤr de precizie flotant | โ3.40E+38 | 3.40E + 38 | Bytes 4 | 7 cifre |
Tipul float foloseศte urmฤtoarea sintaxฤ:
Syntax: FLOAT [(n)]
Aici, n este numฤrul de biศi utilizaศi pentru a stoca mantisa numฤrului cu float รฎn notaศie ศtiinศificฤ. รn mod implicit, valoarea lui n este 53.
Cรขnd definiศi un tip de date precum float, n trebuie sฤ fie o valoare รฎ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.1234 PRINT @Datatype_Float
ieศire:
22.1234
Data ศi ora Tipuri de date รฎn SQL
Aceastฤ categorie stocheazฤ date de tip datฤ ศi orฤ.
| Tipul de date | Descriere | Dimensiunea stocฤrii | Acurateศe | Gama Inferioarฤ | Gama superioarฤ |
|---|---|---|---|---|---|
| DateTime | Folosit pentru a specifica o datฤ ศi o orฤ de la 1 ianuarie 1753 pรขnฤ la 31 decembrie 9999. Are o precizie de 3.33 milisecunde. | Bytes 8 | Rotunjit la incremente de .000, .003, .007 | 1753-01-01 | 9999-12-31 |
| smalldatetime | Folosit pentru specificarea datei ศi orei de la 1 ianuarie 1900 pรขnฤ la 6 iunie 2079. Are o precizie de 1 minut. | 4 octeศi, fix | 1 minute | 1900-01-01 | 2079-06-06 |
| data | Folosit pentru a stoca doar o datฤ de la 1 ianuarie 0001 pรขnฤ la 31 decembrie 9999 | 3 octeศi, fix | 1 zi | 0001-01-01 | 9999-12-31 |
| timp | Folosit doar pentru stocarea valorilor de timp cu o precizie de 100 de nanosecunde. | Bytes 5 | 100 nanosecunde | 00:00:00.0000000 | 23:59:59.9999999 |
| datetimeoffset | Similar cu datetime, dar are un decalaj de fus orar | Bytes 10 | 100 nanosecunde | 0001-01-01 | 9999-12-31 |
| datatime2 | Folosit pentru a specifica o datฤ ศi o orฤ de la 1 ianuarie 0001 pรขnฤ la 31 decembrie 9999 | Bytes 6 | 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โ
Tipuri de date ศiruri de caractere รฎn SQL
Aceastฤ categorie se referฤ la tipurile de caractere. Vฤ permite sฤ definiศi date de tip caracter cu lungime fixฤ โโศi variabilฤ. Are patru tipuri de date. Mai jos sunt tipurile de date de tip ศir de caractere cu exemple.
| Tipul de date | Descriere | Limita inferioara | Limita superioarฤ | Memorie |
|---|---|---|---|---|
| car de rฤzboi | Este un ศir de caractere cu o lฤศime fixฤ. Stocheazฤ maximum 8,000 de caractere. | 0 tancuri | 8000 tancuri | n octeศi |
| varchar | Acesta este un ศir de caractere cu lฤศime variabilฤ. | 0 tancuri | 8000 tancuri | 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 tancuri | 2^31 caractere | n octeศi + 2 octeศi |
| a) Sport and Nutrition Awareness Day in Manasia Around XNUMX people from the rural commune Manasia have participated in a sports and healthy nutrition oriented activity in one of the communityโs sports ready yards. This activity was meant to gather, mainly, middle-aged people from a Romanian rural community and teach them about the benefits that sports have on both their mental and physical health and on how sporting activities can be used to bring people from a community closer together. Three trainers were made available for this event, so that the participants would get the best possible experience physically and so that they could have the best access possible to correct information and good sports/nutrition practices. b) Sports Awareness Day in Poiana ศapului A group of young participants have taken part in sporting activities meant to teach them about sporting conduct, fairplay, and safe physical activities. The day culminated with a football match. | Acesta este un ศir de caractere cu lฤศime variabilฤ. Stocheazฤ maximum 2 GB de date text. | 0 tancuri | 2,147,483,647 tancuri | 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 caracter
Tipuri de date Unicode ศiruri de caractere รฎn SQL
Aceastฤ categorie stocheazฤ รฎntreaga gamฤ de caractere Unicode, care utilizeazฤ codificarea caracterelor UTF-16.
| Tipul de date | Descriere | Limita inferioara | Limita superioarฤ | Memorie |
|---|---|---|---|---|
| nchar | Este un ศir Unicode cu lฤศime fixฤ. | 0 tancuri | 4000 tancuri | de 2 ori n octeศi |
| nvarchar | Este un ศir Unicode cu lฤศime variabilฤ. | 0 tancuri | 4000 tancuri | De 2 ori n octeศi + 2 octeศi |
| ntext | Este un ศir Unicode cu lฤศime variabilฤ. | 0 tancuri | 1,073,741,823 tancuri | 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
Tipuri de date ศiruri binare รฎn SQL
Aceastฤ categorie conศine ศiruri binare de lungime fixฤ โโศi variabilฤ.
| Tipul de date | Descriere | Limita inferioara | Limita superioarฤ | Memorie |
|---|---|---|---|---|
| binar | Este un ศir binar cu lฤศime fixฤ. Stocheazฤ maximum 8,000 de octeศi. | Bytes 0 | Bytes 8000 | n octeศi |
| varbinar | Acesta este un ศir binar cu lฤศime variabilฤ. Stocheazฤ maximum 8,000 de octeศi. | Bytes 0 | Bytes 8000 | Lungimea realฤ a datelor introduse + 2 octeศi |
| imagine | Acesta este un ศir binar cu lฤศime variabilฤ. Stocheazฤ maximum 2 GB. | Bytes 0 | Bytes 2,147,483,647 | - |
Exemplu de interogare:
DECLARE @Datatype_Binary BINARY(2) = 12; PRINT @Datatype_Binary
ieศire:
0x000C
Alte tipuri de date รฎn SQL
Acestea sunt celelalte tipuri de date SQL Server, cu descrierile lor mai jos:
| Tipul de date | Descriere |
|---|---|
| cursor | Rezultatul sฤu este o coloanฤ formatฤ din sp_cursor_list ศi sp_describe_cursor. Funcศia returneazฤ numele variabilei cursor. |
| Versiune de rรขnd | Apliceazฤ ศtampilฤ de versiune rรขndurilor din tabel. |
| Ierarhiid | Acest tip de date reprezintฤ o poziศie รฎntr-o ierarhie. |
| Identificator unic | Stocheazฤ un GUID, adesea convertit dintr-o expresie de caracter. |
| Varianta_SQL | Stocheazฤ valorile tipurilor de date acceptate de SQL Server. |
| XML | Stocheazฤ date XML รฎntr-o coloanฤ. |
| Tipul geometriei spaศiale | Reprezintฤ datele รฎntr-un sistem de coordonate plat. |
| Tipul Geografiei Spaศiale | Reprezintฤ date รฎn sistemul de coordonate rotund-pฤmรขnt. |
| tabel | Stocheazฤ un set de rezultate pentru procesare ulterioarฤ. |
Fapte interesante!
- Tipul de date CHAR este mai rapid decรขt tipul de date VARCHAR รฎn timpul regฤsirii datelor, deoarece lฤศimea sa fixฤ โโevitฤ blocarea lungimii.ping.


