Какво е тип данни?
Типът данни се дефинира като типа данни, които всяка колона или променлива може да съхранява в MS SQL Server.
Докато създавате която и да е таблица или променлива, в допълнение към посочването на името, вие също така задавате и типа данни, които ще съхраняват.
Как да използвам MS SQL тип данни
- Трябва предварително да дефинирате типа данни, които може да съхранява колона или променлива. Определянето на типа данни също така ограничава потребителя да въвежда неочаквани или невалидни данни.
- Можете да използвате ефективно паметта, като присвоите подходящ тип данни на променлива или колона, която ще разпредели само необходимото количество системна памет за данните на съответната колона.
- MS SQL предлага широка категория от типа данни според нуждите на потребителя. Като дата, двоични изображения и т.н.
В този урок ще научите:
- Какво е тип данни?
- Как да използвам MS SQL тип данни
- Защо да използвам DataTypes?
- Точно числово
- Приблизително числово
- Дата и час
- Символни низове
- Unicode символни низове
- Двоичен низ
- Други типове данни
Защо да използвам DataTypes?
Нека вземем проба от проста страница за регистрация на приложението на уебсайта. Три полета за въвеждане са Име, Фамилия и Номер за контакт.
Тук трябва да отбележим, че в реално време:
- „Име / фамилия“ винаги ще бъде по азбучен ред .
- „Контакт“ винаги ще бъде цифров .
- От горната снимка си струва да дефинирате „Име / Фамилия“ като знак и „ Контакт“ като цяло число .
Очевидно е, че във всяко приложение всички полета имат един или друг тип данни. Например, числови, азбучни, дата и много други.
Също така имайте предвид, че различният тип данни има различни изисквания за памет. Следователно, има по-смисъл да се дефинира колоната или променливата с типа данни, който ще има, за ефективно използване на паметта.
Тип данни, наличен в MS SQL
MS SQL сървърът поддържа следните категории тип данни:
- Точно числово
- Приблизително числово
- Дата и час
- Символни низове
- Unicode символни низове
- Двоични низове
- Други типове данни

Точно числово
Точното число има девет типа типове под данни. Точни числови типове данни
Тип данни | Описание | Долна граница | Горен лимит | Памет |
---|---|---|---|---|
bigint | Той съхранява цели числа в дадения диапазон | −2 63 (−9 223 372, 036 854 775 808) | 2 63−1 (−9 223 372, 036 854 775 807) | 8 байта |
инт | Той съхранява цели числа в дадения диапазон | −2 31 (−2,147, 483,648) | 2 31−1 (−2,147, 483,647) | 4 байта |
smallint | Той съхранява цели числа в дадения диапазон | -2 15 (-32,767) | 2 15 (−32 768) | 2 байта |
tinyint | Той съхранява цели числа в дадения диапазон | 0 | 255 | 1 байт |
малко | Може да отнеме 0, 1 или NULL стойности. | 0 | 1 | 1 байт / 8 битова колона |
десетична | Използва се за мащабни и фиксирани прецизни числа | −10 38 + 1 | 10 381-1 | 5 до 17 байта |
числови | Използва се за мащабни и фиксирани прецизни числа | −10 38 + 1 | 10 381-1 | 5 до 17 байта |
пари | Използвани парични данни | -922,337, 203, 685,477.5808 | +922 337, 203, 685 477.5807 | 8 байта |
дребни пари | Използвани парични данни | −214 478,3648 | +214 478.3647 | 4 байта |
Примери:
Запитване:
DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int
Изход: 2
Синтаксис: десетичен (P, S)
Тук,
- P е прецизност
- S е мащаб
Запитване:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31PRINT @Datatype_Decimal
Изход: 2.31
Приблизително числово
Приблизителната цифрова категория включва плаваща запетая и реални стойности. Те се използват най-вече при научни изчисления. Приблизителен числов тип данни
Тип данни | Описание | Долна граница | Горен лимит | Памет | Прецизност |
---|---|---|---|---|---|
плувка (n) | Използва се за число с плаваща точност | -1,79E + 308 | 1,79Е + 308 | Зависи от стойността на n | 7 цифри |
истински | Използва се за число с плаваща точност | −3.40E + 38 | 3.40E + 38 | 4 байта | 15 цифри |
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.1234PRINT @Datatype_Float
Изход: 22.1234
Дата и час
Той съхранява данни от тип Дата и час. Тип данни за дата и час
Тип данни | Описание | Размер на съхранението | Точност | Долен обхват | Горен обхват |
---|---|---|---|---|---|
Време за среща | Използва се за посочване на дата и час от 1 януари 1753 г. до 31 декември 9999 г. Точността му е 3,33 милисекунди. | 8 байта | Закръглено до стъпки от .000, .003, .007 | 1753-01-01 | 9999-12-31 |
smalldatetime | Използва се за определяне на дата и час от 1 януари 0001 до 31 декември 9999. Той има точност от 100 наносекунди | 4 байта, фиксирани | 1 минута | 1900-01-01 | 2079-06-06 |
дата | Използва се за съхранение само от 1 януари 0001 до 31 декември 9999 | 3 байта, фиксирани | 1 ден | 0001-01-01 | 9999-12-31 |
време | Използва се за съхраняване само на стойности само за време с точност до 100 наносекунди. | 5 байта | 100 наносекунди | 00: 00: 00,0000000 | 23: 59: 59,9999999 |
datetimeoffset | Подобно на времето за данни, но има изместване на часовата зона | 10 байта | 100 наносекунди | 0001-01-01 | 9999-12-31 |
datetime2 | Използва се за посочване на дата и час от 1 януари 0001 до 31 декември 9999 | 6 байта | 100 наносекунди | 0001-01-01 | 9999-12-31 |
Примерна заявка:
DECLARE @Datatype_Date DATE = '2030-01-01'PRINT @Datatype_Date
Изход: '2030-01-01'
Символни низове
Тази категория е свързана с тип характер. Позволява на потребителя да дефинира типа данни, който може да бъде с фиксирана и променлива дължина. Той има четири вида типове данни. Типове данни за символни низове
Тип данни | Описание | Долна граница | Горен лимит | Памет |
---|---|---|---|---|
char | Това е символен низ с фиксирана ширина. Съхранява максимум 8000 знака. | 0 символа | 8000 символа | n байта |
varchar | Това е символен низ с променлива ширина | 0 символа | 8000 символа | n байта + 2 байта |
varchar (макс.) | Това е символен низ с променлива ширина. Съхранява максимум 1 073 741 824 знака. | 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 символни низове
Тази категория съхранява пълната гама от Unicode знак, който използва кодирането на символи UTF-16. Типове данни на Unicode символни низове
Тип данни | Описание | Долна граница | Горен лимит | Памет |
---|---|---|---|---|
nchar | Това е Unicode низ с фиксирана ширина | 0 символа | 4000 символа | 2 пъти по n байта |
nvarchar | Това е unicode низ с променлива ширина | 0 символа | 4000 символа | 2 пъти по n байта + 2 байта |
ntext | Това е unicode низ с променлива ширина | 0 символа | 1 073 741 823 char | 2 пъти дължината на низа |
Примерна заявка:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'PRINT @Datatype_nChar
Изход: Това е nCharacter тип данни
Двоичен низ
Тази категория съдържа двоичен низ с фиксирана и променлива дължина. Типове данни с двоичен низ
Тип данни | Описание | Долна граница | Горен лимит | Памет |
---|---|---|---|---|
двоичен | Това е двоичен низ с фиксирана ширина. Той съхранява максимум 8000 байта. | 0 байта | 8000 байта | n байта |
варбинарен | Това е двоичен низ с променлива ширина. Той съхранява максимум 8000 байта | 0 байта | 8000 байта | Действителната дължина на въведените данни + 2 байта |
изображение | Това е двоичен низ с променлива ширина. Той съхранява максимум 2GB. | 0 байта | 2 147 483 647 байта |
Примерна заявка:
DECLARE @Datatype_Binary BINARY(2) = 12;PRINT @Datatype_Binary
Изход: 0x000C
Други типове данни
Това са други различни типове данни с описанието по-долу -
Тип данни | Описание |
---|---|
Курсор | Изходът му е колона от sp_cursor_list и sp_describe_cursor. Той връща името на променливата на курсора. |
Ред версия | Версията подпечатва редове на таблици. |
Йерархида | Този тип данни представлява позиция в йерархията |
Уникален идентификатор | Преобразуване от израз на символ. |
Sql_variant | Той съхранява стойности на типове данни, поддържани от SQL сървър. |
XML | Той съхранява XML данни в колона. |
Тип пространствена геометрия | Той представлява данни в плоска координатна система. |
Тип пространствена география | Той представлява данни в координатната система на кръгла земя. |
маса | Той съхранява набор от резултати за по-късна обработка. |
Интересни факти!
- Типът данни CHAR е по-бърз от VARCHAR при извличане на данни.
Резюме:
- Всяка колона в таблици дефинира със своя тип данни по време на създаването на таблица.
- Има шест основни категории и една друга разни категории. Други разни съдържат девет подкатегории типове данни.