English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Типы данных SQL Server

Следующие разделы описывают поддерживаемые SQL Server типы данных.

Типы данных SQL Server

Microsoft SQL Server поддерживаемые типы данных можно разделить на три основные категории:строка,числоиДата/времяТип данных.

Тип данных строк

Тип данных строк обычно используется для хранения имен, адресов, описаний или любого значения, содержащего буквы и цифры, включая двоичные данные, такие как изображения или аудиофайлы.

Тип данныхОписание
char(n)Хранение строк фиксированной длины. Максимальная длина - 8000 символов.
varchar(n)Хранение строк переменной длины. Максимальная длина - 8000 символов.
varchar(max)Хранение строк переменной длины. Здесь max означает, что максимальный размер хранения составляет 2 ГБ.
textХранение строк переменной длины. Максимальный размер хранения - 2 ГБ.
ncharХранение строк Unicode фиксированной длины. Максимальная длина - 4000 символов.
nvarcharХранение строк Unicode переменной длины. Максимальная длина - 4000 символов.
nvarchar(max)Хранение строк Unicode переменной длины. Здесь max означает, что максимальный размер хранения составляет 2 ГБ.
ntextХранение строк Unicode переменной длины. Максимальный размер хранения - 2 ГБ.
binary(n)Хранение двоичных данных фиксированной длины. Максимальный размер хранения - 8000 байт.
varbinary(n)Хранение двоичных данных переменной длины. Максимальный размер хранения - 8000 байт.
varbinary(max)Хранение двоичных данных переменной длины. Здесь max означает, что максимальный размер хранения составляет 2 ГБ.
imageХранение двоичных данных переменной длины. Максимальный размер хранения - 8000 байт.

Тип данных с числовыми значениями

Тип данных с числовыми значениями обычно используется для хранения цен, зарплат и т.д.

Тип данныхОписание
bitПозволяет хранить значения 1, 0 илиNULL.
tinyintХранение целых значений в диапазоне от 0 до 255.
smallintХранение целых значений в диапазоне от -32,768 до 32,767.
intХранение целых значений в диапазоне от -2,147,483,648 до 2,147,483,647.
bigintХранение целых значений в диапазоне от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807.
decimal(p,s)Хранение фиксированной точности и位数 после запятой. Допустимые значения - 10 ^38 +1 до 10 ^38-1.有关Дополнительные подробности:См. также ниже.
numeric(p,s)Тип данных numeric функционально эквивалентен decimal.
smallmoneyПозволяет точно хранить значения денег или значения денег, в диапазоне от -214,748,3648 до 214,748,3647.
moneyПозволяет точно хранить значения денег или денежных значений, диапазон от -922,337,203,685,477.5808 до 922,337,203,685,477.5807.
float(n)Сохранение значений плавающей точки. Допустимые значения от -1.79E + 308 до -2.23E-308, 0 и от 2.23E-308 до 1.79E + 308.
realСохранение значений плавающей точки. Допустимые значения от -3.40E + 38 до -1.18E-38, 0 и от 1.18E-38 до 3.40E + 38.

При определении столбца decimal или numeric можно указать точность и количество десятичных знаков, например decimal(p,s) или numeric(p,s), где p или точность показывает максимальное количество знаков, включая слева и справа от точки. Точность должна быть в диапазоне от 1 до 38.По умолчанию точность составляет 18.

аsили scale показывает максимальное количество знаков после запятой. От p вычесть этот номер, чтобы определить максимальное количество знаков перед запятой. Количество десятичных знаков должно быть в диапазоне от 0 до p. По умолчанию scale равно 0.

Например, столбец price decimal(6,2) может хранить любое значение с шестью цифрами и двумя десятичными знаками, то есть от -9999.99 до 9999.99.

Тип данных дата и время

Тип данных дата и время обычно используется для хранения данных, таких как дата рождения, дата найма, дата создания или обновления записи в таблице и т.д.

Тип данныхОписание
dateСохранение значений даты, диапазон от 0001-01-01 (1 января, январь) до
9999-12-31 (31 декабря 9999 года).
timeСохранение времени в течение дня с точностью 100 нанoseconds. Допустимые значения от 00:00:00.0000000 до 23:59:59.9999999.
datetimeСохранение комбинированных значений даты и времени с точностью 3.33 миллисекунды. Допустимый диапазон дат datetime с 1753-01-01 (1 января 1753 года) до 9999-12-31 (31 декабря 9999 года).
datetime2

datetime2 расширение типа данных datetime, которое имеет больший диапазон дат. Допустимый диапазон дат datetime2 с 0001-01-01 (1 января 1 года) до 9999-12-31 (31 декабря 9999 года).

smalldatetimeСохранение комбинированных значений даты и времени с точностью 1 минуты. Допустимый диапазон дат smalldatetime с 1900-01-01 (1 января 1900 года) до
06.06.2079 (6 июня 2079 года).
datetimeoffsetТаким же образом, как добавление времени с часовым поясом к datetime2. По умолчанию формат: YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+|-}hh:mm]. Допустимый диапазон часового пояса: от -14:00 до +14:00.
timestampВ SQL Server время戳 является синонимом типа данных rowversion, который автоматически создает уникальное двоичное число в базе данных. rowversion обычно используется для маркеров версии строк таблицы

Внимание:Каждый раз, когда в таблице вставляется или изменяется строка с столбцом rowversion, значение rowversion, увеличивающееся в базе данных, вставляется в столбец rowversion. В таблице может быть только один столбец rowversion.