Типове данни на SQL Server с примери
⚡ Умно обобщение
Типовете данни на SQL Server определят вида стойност, която може да съхранява дадена колона или променлива, като например цяло число, десетична стойност, символ, дата или двоична стойност. Изборът на правилния тип налага валидни данни и използва паметта ефективно.

Какво е тип данни?
Тип данни в MS SQL сървър се дефинира като типа данни, които всяка колона или променлива може да съхранява. Това е видът данни, които даден обект съдържа, като например цяло число, символ или низ. При създаването на маса or променлив, освен че посочвате името, вие също така задавате типа данни, които ще се съхраняват.
Как да използвате MS SQL тип данни
Трябва предварително да дефинирате типа данни, които може да съхранява дадена колона или променлива. Определянето на типа данни също така ограничава потребителя от въвеждане на неочаквани или невалидни данни.
Можете да използвате ефективно паметта, като присвоите подходящ тип данни на променлива или колона, което ще разпредели само необходимото количество системна памет за данните в тази колона.
MS SQL предлага широк набор от основни типове данни в SQL за да отговарят на нуждите на потребителите, като например дата, двоичен файл, изображения и други.
Защо да използвате DataTypes?
Да разгледаме примера на проста страница за регистрация за уебсайт приложение. Трите полета за въвеждане са Име, Фамилия и Телефонен номер.
Тук трябва да отбележим, че в реални ситуации:
- „Име/Фамилия“ винаги ще бъде по азбучен ред.
- „Контакт“ винаги ще бъде число.
Примерът по-долу илюстрира тези полета във формуляр за регистрация.
От горната картинка е логично да се дефинира „Име/Фамилия“ като символ, а „Контакт“ като цяло число.
Очевидно е, че във всяко приложение всички полета съдържат един или друг тип данни, например числови, буквени, датни и много други.
Също така имайте предвид, че различните типове данни имат различни изисквания за памет. Следователно е по-разумно да дефинирате колоната или променливата с типа данни, който ще съдържа, за ефективно използване на паметта.
Наличен тип данни в MS SQL Server
Ето списъка с типовете данни на MS SQL Server. MS SQL Server поддържа следните категории типове данни:
- Точна цифра
- Приблизително числово
- Дата и час
- Символни низове
- Unicode символни низове
- Двоични низове
- Други типове данни
Диаграмата по-долу групира типовете данни на MS SQL Server в тези категории.
Точни числови типове данни в SQL
Точният числов тип има девет подтипа данни в SQL Server. Всеки от тях съхранява цели числа или числа с фиксирана запетая в определен диапазон.
| Тип данни | Descriptйон | Долна граница | Горен лимит | памет |
|---|---|---|---|---|
| bigint | Той съхранява цели числа в дадения диапазон | −2^63 (−9,223,372,036,854,775,808 XNUMX) | 2^63−1 (32 767) | 8 байта |
| Int | Той съхранява цели числа в дадения диапазон | −2^31 (−2,147,483,648 XNUMX) | 2^31−1 (32 767) | 4 байта |
| smallint | Той съхранява цели числа в дадения диапазон | −2^15 (−32,768 XNUMX) | 2^15−1 (32 767) | 2 байта |
| tinyint | Той съхранява цели числа в дадения диапазон | 0 | 255 | 1 байт |
| малко | Може да приема стойности 0, 1 или NULL. | 0 | 1 | 1 байт / 8-битова колона |
| десетичен | Използва се за мащаб и числа с фиксирана точност | −10^38+1 | 10^38−1 | 5 до 17 байта |
| цифров | Използва се за мащаб и числа с фиксирана точност | −10^38+1 | 10^38−1 | 5 до 17 байта |
| пари | Използва се за парични данни | -922,337,203,685,477.5808 | +922,337,203,685,477.5807 | 8 байта |
| малки пари | Използва се за парични данни | -214,478.3648 | +214,478.3647 | 4 байта |
Точни числови типове данни в SQL Server с примери:
Запитване:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
Изход:
2
Синтаксис:
Decimal (P,S)
Тук P е прецизността, а S е мащабът.
Запитване:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31 PRINT @Datatype_Decimal
Изход:
2.31
Приблизителни числови типове данни в SQL
Категорията приблизителни числови данни в SQL включва числа с плаваща запетая и реални стойности. Тези типове данни се използват най-вече в научни изчисления.
| Тип данни | Descriptйон | Долна граница | Горен лимит | памет | Прецизност |
|---|---|---|---|---|---|
| float(n) | Използва се за число с плаваща точност | −1.79E+308 | 1.79 308 + | Зависи от стойността на n | 15 цифри |
| реален | Използва се за число с плаваща точност | −3.40E+38 | 3.40 38 + | 4 байта | 7 цифри |
Типът float използва следния синтаксис:
Syntax: FLOAT [(n)]
Тук n е броят на битовете, използвани за съхраняване на мантисата на числото с плаваща запетая в научна нотация. По подразбиране стойността на n е 53.
Когато дефинирате тип данни като float, n трябва да бъде стойност между 1 и 53. SQL Server третира n като една от две възможни стойности: ако 1 <=n <=24, n се третира като 24; ако 25 <=n <=53, n се третира като 53.
Примерна заявка:
DECLARE @Datatype_Float FLOAT(24) = 22.1234 PRINT @Datatype_Float
Изход:
22.1234
Типове данни за дата и час в SQL
Тази категория съхранява данни от типа дата и час.
| Тип данни | Descriptйон | Размер на съхранение | Точност | Долен диапазон | Горен диапазон |
|---|---|---|---|---|---|
| Време за среща | Използва се за указване на дата и час от 1 януари 1753 г. до 31 декември 9999 г. Има точност от 3.33 милисекунди. | 8 байта | Закръглено до стъпки от .000, .003, .007 | 1753-01-01 | 9999-12-31 |
| малка датачас | Използва се за задаване на дата и час от 1 януари 1900 г. до 6 юни 2079 г. Има точност от 1 минута. | 4 байта, фиксирани | 1 минути | 1900-01-01 | 2079-06-06 |
| дата | Използва се за съхраняване само на дата от 1 януари 0001 г. до 31 декември 9999 г. | 3 байта, фиксирани | 1 дни | 0001-01-01 | 9999-12-31 |
| път | Използва се за съхраняване само на времеви стойности с точност до 100 наносекунди. | 5 байта | 100 XNUMX наносекунди | 00:00:00.0000000 | 23:59:59.9999999 |
| datetimeoffset | Подобно на datetime, но има отместване на часовата зона | 10 байта | 100 XNUMX наносекунди | 0001-01-01 | 9999-12-31 |
| дата и час2 | Използва се за указване на дата и час от 1 януари 0001 г. до 31 декември 9999 г. | 6 байта | 100 XNUMX наносекунди | 0001-01-01 | 9999-12-31 |
Примерна заявка:
DECLARE @Datatype_Date DATE = '2030-01-01' PRINT @Datatype_Date
Изход:
"2030-01-01"
Символни низове Типове данни в SQL
Тази категория се отнася до типовете символи. Тя ви позволява да дефинирате символни данни с фиксирана и променлива дължина. Има четири вида типове данни. По-долу са типовете данни за символни низове с примери.
| Тип данни | Descriptйон | Долна граница | Горен лимит | памет |
|---|---|---|---|---|
| овъглявам | Това е символен низ с фиксирана ширина. Той съхранява максимум 8,000 знака. | 0 знака | 8000 знака | n байта |
| varchar | Това е низ от символи с променлива ширина. | 0 знака | 8000 знака | n байта + 2 байта |
| varchar (макс.) | Това е символен низ с променлива ширина. Той съхранява максимум 1,073,741,824 XNUMX XNUMX XNUMX знака. | 0 знака | 2^31 знака | n байта + 2 байта |
| текст | Това е низ от символи с променлива ширина. Той съхранява максимум 2 GB текстови данни. | 0 знака | 2,147,483,647 знака | n байта + 4 байта |
Примерна заявка:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype' PRINT @Datatype_Char
Изход:
Това е символен тип данни
Unicode Character String Типове данни в SQL
Тази категория съхранява пълния набор от Unicode символи, които използват кодиране на символите UTF-16.
| Тип данни | Descriptйон | Долна граница | Горен лимит | памет |
|---|---|---|---|---|
| нчар | Това е Unicode низ с фиксирана ширина. | 0 знака | 4000 знака | 2 по n байта |
| nvarchar | Това е Unicode низ с променлива ширина. | 0 знака | 4000 знака | 2 по n байта + 2 байта |
| ntext | Това е Unicode низ с променлива ширина. | 0 знака | 1,073,741,823 знака | 2 пъти дължината на низа |
Примерна заявка:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype' PRINT @Datatype_nChar
Изход:
Това е nCharacter Datatype
Двоични низови типове данни в SQL
Тази категория съдържа двоични низове с фиксирана и променлива дължина.
| Тип данни | Descriptйон | Долна граница | Горен лимит | памет |
|---|---|---|---|---|
| двоен | Това е двоичен низ с фиксирана ширина. Той съхранява максимум 8,000 байта. | 0 байта | 8000 байта | n байта |
| varbinary | Това е двоичен низ с променлива ширина. Той съхранява максимум 8,000 байта. | 0 байта | 8000 байта | Действителната дължина на въведените данни + 2 байта |
| изображение | Това е двоичен низ с променлива ширина. Той съхранява максимум 2 GB. | 0 байта | 2,147,483,647 байта | - |
Примерна заявка:
DECLARE @Datatype_Binary BINARY(2) = 12; PRINT @Datatype_Binary
Изход:
0x000C
Други типове данни в SQL
Това са другите типове данни на SQL Server, като техните описания са по-долу:
| Тип данни | Descriptйон |
|---|---|
| курсор | Изходът му е колона от sp_cursor_list и sp_describe_cursor. Връща името на променливата на курсора. |
| Версия на редове | Поставя печати за версии на редовете в таблицата. |
| Йерархия | Този тип данни представлява позиция в йерархия. |
| Уникален идентификатор | Съхранява GUID, често конвертиран от символен израз. |
| Sql_variant | Той съхранява стойности на типове данни, поддържани от SQL Server. |
| XML | Той съхранява XML данни в колона. |
| Тип пространствена геометрия | Той представя данни в плоска координатна система. |
| Тип пространствена география | Той представя данни в кръглоземната координатна система. |
| маса | Той съхранява набор от резултати за последваща обработка. |
Интересни факти!
- Типът данни CHAR е по-бърз от типа данни VARCHAR при извличане на данни, защото фиксираната му ширина избягва нуждата от по-голяма дължина.ping.


