Учебники

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

Что такое тип данных?

Тип данных определяется как тип данных, которые любой столбец или переменная может хранить в MS SQL Server.

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

Как использовать тип данных MS SQL

  • Необходимо заранее определить тип данных, которые может хранить столбец или переменная. Определение типа данных также ограничивает пользователя от ввода любых неожиданных или недействительных данных.
  • Вы можете эффективно использовать память, назначая соответствующий тип данных переменной или столбцу, который будет выделять только необходимый объем системной памяти для данных соответствующего столбца.
  • MS SQL предлагает широкую категорию типов данных в соответствии с потребностями пользователя. Как дата, двоичные изображения и т. Д.

В этом уроке вы узнаете:

Зачем использовать DataTypes?

Давайте возьмем образец простой страницы регистрации приложения веб-сайта. Три поля ввода: Имя, Фамилия и Контактный номер.

Здесь следует отметить, что в режиме реального времени:

  • «Имя / Фамилия» всегда будет буквенным .
  • «Контакт» всегда будет числовым .

  • Из приведенного выше рисунка стоит указать «Имя / Фамилия» как символ, а « Контакт» — как целое число .

Очевидно, что в любом приложении все поля имеют один или другой тип данных. Например, числовой, буквенный, дата и многое другое.

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

Тип данных доступен в MS SQL

Сервер MS SQL поддерживает следующие категории типа данных:

  • Точное число
  • Приблизительный числовой
  • Дата и время
  • Строки символов
  • Строки символов Unicode
  • Двоичные строки
  • Другие типы данных
Типы данных MSQL

Точное число

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

Точные числовые типы данных

Тип данных Описание Нижний предел Верхний предел Память
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 байт
smallmoney Использованные денежные данные -214,478.3648 +214,478.3647 4 байта

Примеры:

Запрос:

DECLARE @Datatype_Int INT = 2
PRINT @Datatype_Int

Выход: 2

Синтаксис: десятичный (P, S)

Вот,

  • Точность
  • S это масштаб

Запрос:

DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31
PRINT @Datatype_Decimal

Выход: 2.31

Приблизительный Числовой

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

Приблизительный числовой тип данных

Тип данных Описание Нижний предел Верхний предел Память точность
Поплавок (п) Используется для числа с плавающей точностью -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 обрабатывает п , как один из двух возможных значений. Если 1 <= n <= 24, n рассматривается как 24. Если 25 <= n <= 53, n рассматривается как 53.

Пример запроса:

DECLARE @Datatype_Float FLOAT(24) = 22.1234
PRINT @Datatype_Float

Выход: 22.1234

Дата и время

Здесь хранятся данные типа Дата и время.

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

Тип данных Описание Размер хранилища точность Нижний диапазон Верхний Диапазон
DateTime Используется для указания даты и времени с 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»

Строки символов

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

Типы данных Строки символов

Тип данных Описание Нижний предел Верхний предел Память
голец Это строка символов с фиксированной шириной. Он хранит не более 8000 символов. 0 символов 8000 символов n байтов
VARCHAR Это строка символов с переменной шириной 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

Вывод: это тип данных персонажа

Строки символов Unicode

В этой категории хранится весь диапазон символов Unicode, который использует кодировку UTF-16.

Типы данных строки символов Unicode

Тип данных Описание Нижний предел Верхний предел Память
NCHAR Это строка 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

Двоичная строка

Эта категория содержит двоичную строку фиксированной и переменной длины.

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

Тип данных Описание Нижний предел Верхний предел Память
двоичный Это двоичная строка фиксированной ширины. Он хранит максимум 8 000 байтов. 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 при получении данных.

Резюме:

  • Каждый столбец в таблицах определяется своим типом данных при создании таблицы.
  • Существует шесть основных категорий и еще одна категория. Другие разные имеют девять подкатегорий доступных типов данных.