Типы данных SQL Server с примерами
⚡ Умное резюме
Типы данных SQL Server определяют тип значения, которое может хранить столбец или переменная, например, целое число, десятичное число, символ, дата или двоичное число. Выбор правильного типа обеспечивает корректность данных и эффективное использование памяти.

Что такое тип данных?
Тип данных в MS SQL Server Определяется как тип данных, которые может хранить любой столбец или переменная. Это тип данных, которые содержит объект, например, целое число, символ или строка. При создании любого (см. таблицу ниже) or переменнаяПомимо указания имени, вы также задаете тип данных, которые будут храниться.
Как использовать тип данных MS SQL
Необходимо заранее определить тип данных, которые может хранить столбец или переменная. Определение типа данных также предотвращает ввод пользователем неожиданных или недопустимых данных.
Эффективно использовать память можно, присвоив переменной или столбцу соответствующий тип данных, что позволит выделить только необходимое количество системной памяти для данных этого столбца.
MS SQL предлагает широкий спектр базовых типов данных. SQL для удовлетворения потребностей пользователя, таких как дата, двоичные данные, изображения и многое другое.
Зачем использовать типы данных?
Рассмотрим пример простой страницы регистрации для веб-приложения. Три поля ввода: Имя, Фамилия и Контактный номер.
Здесь следует отметить, что в реальных условиях:
- Имя и фамилия всегда будут располагаться в алфавитном порядке.
- «Контактная информация» всегда будет представлена цифрами.
В приведенном ниже примере показаны эти поля в форме регистрации.
Исходя из приведенного выше изображения, логично определить «Имя/Фамилия» как символ, а «Контактное лицо» как целое число.
Очевидно, что в любом приложении все поля содержат тот или иной тип данных, например, числовые, буквенные, датированные и многие другие.
Также следует отметить, что разные типы данных имеют разные требования к памяти. Поэтому для эффективного использования памяти целесообразнее определять столбец или переменную, указывая тип данных, которые она будет содержать.
Тип данных, доступный в MS SQL Server
Ниже приведён список типов данных MS SQL Server. MS SQL Server поддерживает следующие категории типов данных:
- Точное число
- Примерное числовое значение
- Дата и время
- Строки символов
- Строки символов Юникода
- Двоичные строки
- Другие типы данных
На приведенной ниже диаграмме типы данных MS SQL Server сгруппированы по этим категориям.
Точные числовые типы данных в SQL
В SQL Server тип данных «Точный числовой» имеет девять подтипов. Каждый из них хранит целые числа или числа с фиксированной запятой в заданном диапазоне.
| Тип данных | Описание | Нижний предел | Верхний предел | Память |
|---|---|---|---|---|
| BIGINT | Он хранит целые числа в заданном диапазоне | −2^63 (−9,223,372,036,854,775,808) | 2^63−1 (9,223,372,036,854,775,807) | 8 байт |
| Int | Он хранит целые числа в заданном диапазоне | −2^31 (−2,147,483,648) | 2^31−1 (2,147,483,647) | 4 байт |
| SMALLINT | Он хранит целые числа в заданном диапазоне | −2^15 (−32,768) | 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 входят значения с плавающей запятой и вещественные значения. Эти типы данных в основном используются в научных вычислениях.
| Тип данных | Описание | Нижний предел | Верхний предел | Память | Точность |
|---|---|---|---|---|---|
| плавающий (н) | Используется для чисел с плавающей точностью. | −1.79E+308 | 1.79E + 308 | Зависит от значения n | 15 цифры |
| реальные | Используется для чисел с плавающей точностью. | −3.40E+38 | 3.40E + 38 | 4 байт | 7 цифры |
Для типов данных с плавающей запятой используется следующий синтаксис:
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
В этой категории хранятся данные типа «дата и время».
| Тип данных | Описание | Размер хранилища | Точность подачи | Нижний диапазон | Верхний диапазон |
|---|---|---|---|---|---|
| DateTime | Используется для указания даты и времени с 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 наносекунд | 00:00:00.0000000 | 23:59:59.9999999 |
| смещение даты и времени | Аналогично формату даты и времени, но с учетом смещения часового пояса. | 10 байт | 100 наносекунд | 0001-01-01 | 9999-12-31 |
| дата и время2 | Используется для указания даты и времени с 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'
Типы данных символьных строк в SQL
Эта категория относится к символьным типам данных. Она позволяет определять символьные данные фиксированной и переменной длины. В ней представлены четыре типа данных. Ниже приведены строковые типы данных с примерами.
| Тип данных | Описание | Нижний предел | Верхний предел | Память |
|---|---|---|---|---|
| колесница | Это строка символов фиксированной ширины. Он хранит максимум 8,000 символов. | 0 символов | 8000 символов | n байт |
| варчар | Это строка символов с переменной шириной. | 0 символов | 8000 символов | n байт + 2 байта |
| варчар (макс.) | Это строка символов переменной ширины. Он хранит максимум 1,073,741,824 XNUMX XNUMX XNUMX символа. | 0 символов | 2^31 символ | n байт + 2 байта |
| текст | Это строка символов с переменной шириной. Она вмещает максимум 2 ГБ текстовых данных. | 0 символов | 2,147,483,647 символов | n байт + 4 байта |
Пример запроса:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype' PRINT @Datatype_Char
Выход:
Это символьный тип данных
Типы данных строк символов Юникода в SQL
В этой категории хранится полный набор символов Unicode, использующих кодировку UTF-16.
| Тип данных | Описание | Нижний предел | Верхний предел | Память |
|---|---|---|---|---|
| нчар | Это строка Unicode фиксированной ширины. | 0 символов | 4000 символов | 2 раза n байт |
| нварчар | Это строка Unicode переменной ширины. | 0 символов | 4000 символов | 2 раза n байт + 2 байта |
| текст | Это строка Unicode переменной ширины. | 0 символов | 1,073,741,823 символов | в 2 раза больше длины строки |
Пример запроса:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype' PRINT @Datatype_nChar
Выход:
Это тип данных nCharacter
Типы данных двоичной строки в SQL
В эту категорию входят двоичные строки фиксированной и переменной длины.
| Тип данных | Описание | Нижний предел | Верхний предел | Память |
|---|---|---|---|---|
| двоичный | Это двоичная строка фиксированной ширины. Она вмещает максимум 8,000 байт. | 0 байт | 8000 байт | n байт |
| варбинарный | Это двоичная строка переменной ширины. Она вмещает максимум 8,000 байт. | 0 байт | 8000 байт | Фактическая длина введенных данных + 2 байта |
| изображение | Это двоичная строка переменной ширины. Максимальный объем хранимых данных — 2 ГБ. | 0 байт | 2,147,483,647 байт | - |
Пример запроса:
DECLARE @Datatype_Binary BINARY(2) = 12; PRINT @Datatype_Binary
Выход:
0x000C
Другие типы данных в SQL
Ниже приведены другие типы данных SQL Server с их описаниями:
| Тип данных | Описание |
|---|---|
| Курсор | Результатом выполнения является столбец, содержащий значения переменных sp_cursor_list и sp_describe_cursor. Возвращается имя переменной курсора. |
| Rowversion | Это добавляет метки версии к строкам таблицы. |
| Иерархия | Этот тип данных обозначает позицию в иерархии. |
| Уникальный идентификатор | Хранит GUID, часто преобразованный из символьного выражения. |
| Sql_variant | В нем хранятся значения типов данных, поддерживаемых SQL Server. |
| XML | Он хранит данные XML в столбце. |
| Тип пространственной геометрии | Он представляет данные в плоской системе координат. |
| Тип пространственной географии | Он представляет данные в круглоземной системе координат. |
| (см. таблицу ниже) | Он сохраняет набор результатов для последующей обработки. |
Интересные факты!
- Тип данных CHAR быстрее, чем тип данных VARCHAR, при извлечении данных, поскольку его фиксированная ширина позволяет избежать проблем с длиной.ping.


