В этом руководстве вы узнаете о типах данных SQL Server, включая числовые, символьные строки, двоичные строки, дату и время и другие типы данных.
Обзор типов данных SQL Server
В SQL Server столбец, переменная и параметр содержат значение, связанное с типом, или также известное как тип данных. Тип данных — это атрибут, который указывает тип данных, которые могут хранить эти объекты. Это может быть целое число, строка символов, денежный показатель, дата и время и т. д.
SQL Server предоставляет список типов данных, определяющих все типы данных, которые можно использовать, например, при определении столбца или объявлении переменной.
На следующем рисунке показана система типов данных SQL Server:
Обратите внимание, что SQL Server удалит типы данных ntext, text и image в своей будущей версии. Поэтому вам следует избегать использования этих типов данных и вместо них использовать типы данных nvarchar(max), varchar(max) и varbinary(max).
Точные числовые типы данных
Точные числовые типы данных хранят точные числа, такие как целые числа, десятичные дроби или денежные суммы.
- Бит хранит одно из трех значений 0, 1 и NULL.
- Типы данных int, bigint, smallint и tinyint хранят целочисленные данные.
- Типы данных decimal и numeric хранят числа, имеющие фиксированную точность и масштаб. Обратите внимание, что decimal и numeric являются синонимами.
- Типы данных money и smallmoney хранят значения валют.
В следующей таблице приведены характеристики конкретных числовых типов данных:
Тип данных | Нижний предел | Верхний предел | Память |
---|---|---|---|
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 байта |
маленький | −2^15(−32,767) | 2^15(−32,768) | 2 байта |
крошечныйинт | 0 | 255 | 1 байт |
кусочек | 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 байт |
smallmoney | −214,478.3648 | +214,478.3647 | 4 байта |
Приблизительные числовые типы данных
Приблизительный числовой тип данных хранит числовые данные с плавающей точкой. Они часто используются в научных расчетах.
Тип данных | Нижний предел | Верхний предел | Память | Точность |
---|---|---|---|---|
плавающий(n) | −1.79E+308 | 1.79E+308 | Зависит от значения n | 7-значный |
настоящий | −3.40E+38 | 3.40E+38 | 4 байта | 15-значный |
Типы данных «Дата и время»
Типы данных даты и времени хранят данные о дате и времени, а также смещение даты и времени.
Тип данных | Размер хранилища | Точность | Нижний диапазон | Верхний диапазон |
---|---|---|---|---|
дата и время | 8 байт | Округлено с шагом .000, .003, .007 | 1753-01-01 | 9999-12-31 |
smalldatetime | 4 байта, фиксированный | 1 минута | 1900-01-01 | 2079-06-06 |
дата | 3 байта, фиксированный | 1 день | 0001-01-01 | 9999-12-31 |
время | 5 байт | 100 наносекунд | 00:00:00.0000000 | 23:59:59.9999999 |
датавремясмещение | 10 байт | 100 наносекунд | 0001-01-01 | 9999-12-31 |
датавремя2 | 6 байт | 100 наносекунд | 0001-01-01 | 9999-12-31 |
Если вы разрабатываете новое приложение, вам следует использовать типы данных time, date, datetime2 и datetimeoffset. Поскольку эти типы соответствуют стандарту SQL и более переносимы. Кроме того, time, datetime2 и datetimeoffset имеют большую точность секунд, а datetimeoffset поддерживает часовой пояс.
Типы данных строк символов
Типы данных символьных строк позволяют хранить данные как фиксированной длины(char), так и переменной длины(varchar). Текстовый тип данных может хранить не-Unicode данные в кодовой странице сервера.
Тип данных | Нижний предел | Верхний предел | Память |
---|---|---|---|
1095;ар | 0 символов | 8000 символов | n байт |
varchar | 0 символов | 8000 символов | n байт + 2 байта |
varchar(макс.) | 0 символов | 2^31 символ | n байт + 2 байта |
текст | 0 символов | 2,147,483,647 символов | n байт + 4 байта |
Типы данных строк символов Unicode
Типы данных строк символов Unicode хранят данные символов Unicode фиксированной длины(nchar) или переменной длины(nvarchar).
Тип данных | Нижний предел | Верхний предел | Память |
---|---|---|---|
нчар | 0 символов | 4000 символов | 2 раза по n байт |
nvarchar | 0 символов | 4000 символов | 2 раза по n байт + 2 байта |
nтекст | 0 символов | 1,073,741,823 символа | в 2 раза больше длины строки |
Типы данных двоичных строк
Двоичные типы данных хранят двоичные данные фиксированной и переменной длины.
Тип данных | Нижний предел | Верхний предел | Память |
---|---|---|---|
двоичный | 0 байт | 8000 байт | n байт |
варбинарный | 0 байт | 8000 байт | Фактическая длина введенных данных + 2 байта |
изображение | 0 байт | 2,147,483,647 байт |
Другие типы данных
Тип данных | Описание |
---|---|
курсор | для переменных или выходного параметра хранимой процедуры, содержащего ссылку на курсор |
rowversion | отображать автоматически сгенерированные уникальные двоичные числа в базе данных. |
иерархия | представляют позицию дерева в иерархии дерева |
уникальныйидентификатор | 16-байтовый GUID |
sql_вариант | хранить значения других типов данных |
XML | хранить XML-данные в столбце или переменной типа XML |
Тип пространственной геометрии | представлять данные в плоской системе координат. |
Тип пространственной географии | хранить эллипсоидальные(круглые) данные, такие как координаты широты и долготы GPS. |
стол | временно сохранить набор результатов для обработки в более позднее время |
В этом руководстве вы узнали о кратком обзоре типов данных SQL Server. Мы подробно рассмотрим каждый тип данных в следующих руководствах.