Что такое Datatype?
Тип данных определяется как тип данных, которые любой столбец или переменная может хранить в MS SQL Server.
При создании любой таблицы или переменной, помимо указания имени, вы также устанавливаете тип данных, которые она будет хранить.
Как использовать тип данных MS SQL
- Вам необходимо заранее определить тип данных, которые может хранить столбец или переменная. Определение типа данных также запрещает пользователю вводить какие-либо неожиданные или недопустимые данные.
- Вы можете эффективно использовать память, назначив соответствующий тип данных переменной или столбцу, который будет выделять только необходимый объем системной памяти для данных соответствующего столбца.
- MS SQL предлагает широкую категорию типов данных в соответствии с потребностями пользователя. Например, Дата, двоичные изображения и т. Д.
В этом руководстве вы узнаете:
- Что такое Datatype?
- Как использовать тип данных MS SQL
- Зачем использовать DataTypes?
- Точное число
- Приблизительное числовое значение
- Дата и время
- Строки символов
- Строки символов Юникода
- Двоичная строка
- Другие типы данных
Зачем использовать DataTypes?
Давайте возьмем образец простой страницы регистрации веб-приложения. Три поля ввода: Имя, Фамилия и Контактный номер.
Здесь следует отметить, что в реальном времени:
- «Имя / Фамилия» всегда будет буквенным .
- «Контакт» всегда будет числовым .
- На картинке выше стоит определить «Имя / Фамилия» как символ, а « Контакт» - как целое число .
Очевидно, что в любом приложении все поля содержат тот или иной тип данных. Например, числовые, буквенные, дата и многое другое.
Также обратите внимание, что разные типы данных имеют разные требования к памяти. Следовательно, имеет смысл определить столбец или переменную с типом данных, который они будут хранить для эффективного использования памяти.
Тип данных, доступный в MS SQL
Сервер MS SQL поддерживает следующие категории типов данных:
- Точное числовое
- Приблизительное числовое значение
- Дата и время
- Строки символов
- Строки символов Юникода
- Бинарные строки
- Другие типы данных
Точное число
Exact numeric имеет девять типов подтипов данных. Точные числовые типы данных
Тип данных | Описание | Нижний предел | Верхний предел | объем памяти |
---|---|---|---|---|
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,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 байт |
smallmoney | Используемые денежные данные | −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.79E + 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
Дата и время
В нем хранятся данные типа Дата и время. Тип данных даты и времени
Тип данных | Описание | Размер хранилища | Точность | Нижний диапазон | Верхний диапазон |
---|---|---|---|---|---|
DateTime | Используется для указания даты и времени с 1 января 1753 г. по 31 декабря 9999 г. Он имеет точность 3,33 миллисекунды. | 8 байт | Округлено с шагом 0,000, 0,003, 0,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 | Подобно datatime, но имеет смещение часового пояса | 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'
Строки символов
Эта категория связана с символьным типом. Он позволяет пользователю определять тип данных символа, который может быть фиксированной и переменной длины. Он имеет четыре типа данных. Типы данных символьных строк
Тип данных | Описание | Нижний предел | Верхний предел | объем памяти |
---|---|---|---|---|
символ | Это строка символов фиксированной ширины. Он хранит максимум 8000 символов. | 0 символов | 8000 символов | n байт |
варчар | Это символьная строка переменной ширины. | 0 символов | 8000 символов | n байтов + 2 байта |
varchar (макс.) | Это символьная строка переменной ширины. Он хранит максимум 1 073 741 824 символа. | 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
Вывод: это тип данных символа.
Строки символов Юникода
В этой категории хранится полный диапазон символов Юникода, в котором используется кодировка символов UTF-16. Типы данных символьной строки Unicode
Тип данных | Описание | Нижний предел | Верхний предел | объем памяти |
---|---|---|---|---|
нчар | Это строка Unicode фиксированной ширины. | 0 символов | 4000 символов | 2 раза по n байтов |
nvarchar | Это строка в Юникоде переменной ширины. | 0 символов | 4000 символов | 2 раза по n байтов + 2 байта |
ntext | Это строка в Юникоде переменной ширины. | 0 символов | 1,073,741,823 знаков | В 2 раза больше длины строки |
Пример запроса:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'PRINT @Datatype_nChar
Вывод: это nCharacter Datatype.
Двоичная строка
Эта категория содержит двоичную строку фиксированной и переменной длины. Типы данных двоичных строк
Тип данных | Описание | Нижний предел | Верхний предел | объем памяти |
---|---|---|---|---|
двоичный | Это двоичная строка фиксированной ширины. Он хранит максимум 8000 байт. | 0 байт | 8000 байт | n байт |
varbinary | Это двоичная строка переменной ширины. Он хранит максимум 8000 байт. | 0 байт | 8000 байт | Фактическая длина введенных данных + 2 байта |
изображение | Это двоичная строка переменной ширины. Он хранит максимум 2 ГБ. | 0 байт | 2 147 483 647 байт |
Пример запроса:
DECLARE @Datatype_Binary BINARY(2) = 12;PRINT @Datatype_Binary
Выход: 0x000C
Другие типы данных
Это другие разные типы данных с описанием ниже:
Тип данных | Описание |
---|---|
Курсор | Его вывод - это столбец sp_cursor_list и sp_describe_cursor. Возвращает имя курсорной переменной. |
Версия строки | Эта версия штампует строки таблицы. |
Hierarchyid | Этот тип данных представляет позицию в иерархии. |
Уникальный идентификатор | Преобразование из символьного выражения. |
Sql_variant | Он хранит значения типов данных, поддерживаемых SQL-сервером. |
XML | Он хранит данные XML в столбце. |
Тип пространственной геометрии | Он представляет данные в плоской системе координат. |
Тип пространственной географии | Он представляет данные в системе координат круглой Земли. |
стол | Он сохраняет набор результатов для последующей обработки. |
Интересные факты!
- Тип данных CHAR быстрее, чем VARCHAR при извлечении данных.
Резюме:
- Каждый столбец в таблицах определяется своим типом данных во время создания таблицы.
- Есть шесть основных категорий и одна дополнительная категория. Остальные разные имеют девять подкатегорий типов данных.