Функции типов данных (Transact-SQL)
Перечисленные ниже скалярные функции возвращают сведения о значениях различных типов данных.
В этом разделе
- DATALENGTH (Transact-SQL)
- IDENT_SEED (Transact-SQL)
- IDENT_CURRENT (Transact-SQL)
- IDENTITY (функция) (Transact-SQL)
- IDENT_INCR (Transact-SQL)
- SQL_VARIANT_PROPERTY (Transact-SQL)
Обратная связь
Были ли сведения на этой странице полезными?
Обратная связь
Отправить и просмотреть отзыв по
Типы данных SQL Server с примерами
A Тип данных in SQL сервер определяется как тип данных, которые может хранить любой столбец или переменная. Это тип данных, которые объект хранит, например целое число, символ, строка и т. д. При создании любой таблицы или переменной помимо указания имени вы также задаете тип данных, которые она будет хранить.
Как использовать тип данных MS SQL
- Вам необходимо заранее определить тип данных, которые может хранить столбец или переменная. Определение типа данных также ограничивает пользователя от ввода неожиданных или неверных данных.
- Вы можете эффективно использовать память, назначив соответствующий тип данных переменной или столбцу, который будет выделять только необходимый объем системной памяти для данных соответствующего столбца.
- MS SQL предлагает широкую категорию основных типов данных в SQL в соответствии с потребностями пользователя, таких как дата, двоичные изображения и т. д.
Зачем использовать типы данных?
Давайте возьмем пример простого Страница регистрации веб-приложения. Три поля ввода: имя, фамилия и контактный номер.
Здесь следует отметить, что в реальном времени:
- «Первый фамилия» всегда будет буквенный.
- «Контакт» всегда будет числовой.
- По картинке выше стоит определить «Первый фамилия» как персонаж и «Контакт» как целое.
Очевидно, что в любом приложении все поля содержат тот или иной тип данных. Например, числовые, буквенные, даты и многое другое.
Также обратите внимание, что разные типы данных имеют разные требования к памяти. Поэтому имеет смысл определить столбец или переменную с типом данных, который он будет хранить, для эффективного использования памяти.
Тип данных, доступный в MS SQL Server
Вот список типов данных сервера MS SQL:
Сервер MS SQL поддержка следующих категорий типов данных:

- Точное число
- Примерное числовое значение
- Дата и время
- Строки символов
- Строки символов Юникода
- Двоичные строки
- Другие типы данных
Точные числовые типы данных в SQL
Exact numeric имеет девять типов подтипов данных на сервере SQL.
Точные числовые типы данных
| Тип данных | Описание | Нижний предел | Верхний предел | Память |
|---|---|---|---|---|
| BIGINT | Он хранит целые числа в заданном диапазоне | -2^63 (-9,223,372 036,854,775,808 XNUMX, XNUMX XNUMX XNUMX XNUMX) | 2^63−1 (−9,223,372, 036,854,775,807) | 8 байт |
| Int | Он хранит целые числа в заданном диапазоне | -2^31 (-2,147 483,648 XNUMX, XNUMX XNUMX XNUMX XNUMX) | 2^31−1 (−2,147, 483,647) | 4 байт |
| SMALLINT | Он хранит целые числа в заданном диапазоне | −2^15 (−32,767) | 2 ^ 15 (-32,768 XNUMX) | 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, XNUMX XNUMX | 8 байт |
| маленькие деньги | Используемые денежные данные | -214,478.3648 | +214,478.3647 | 4 байт |
Точные числовые типы данных на SQL-сервере с примерами:
Запрос:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
Результат
Синтаксис
- P — точность
- S — масштаб
Запрос:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31 PRINT @Datatype_Decimal
Результат
Приблизительные числовые типы данных в SQL
SQL Приблизительная числовая категория включает значения с плавающей запятой и действительные значения. Эти типы данных в SQL в основном используются в научных расчетах.
Приблизительный числовой тип данных
| Тип данных | Описание | Нижний предел | Верхний предел | Память | Точность |
|---|---|---|---|---|---|
| плавающий (н) | Используется для чисел с плавающей точностью. | −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-сервер лечит n как одно из двух возможных значений. Если 1
Пример запроса:
DECLARE @Datatype_Float FLOAT(24) = 22.1234 PRINT @Datatype_Float
Результат
Типы данных даты и времени в SQL
Он хранит данные типа Дата и время.
Тип данных даты и времени
| Тип данных | Описание | Размер хранилища | точность | Нижний диапазон | Верхний диапазон |
|---|---|---|---|---|---|
| DateTime | Используется для указания даты и времени с 1 января 1753 года по 31 декабря 9999 года. Точность составляет 3.33 миллисекунды. | 8 байт | Округлено с шагом 000, 003, 007. | 1753-01-01 | 9999-12-31 |
| маленькая дата и время | Используется для указания даты и времени с 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 |
| смещение даты и времени | Похож на datatime, но имеет смещение часового пояса. | 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
Результат
Типы данных символьных строк в SQL
Эта категория связана с типом персонажа. Это позволяет пользователю определить тип данных символа, который может иметь фиксированную и переменную длину. Он имеет четыре типа типов данных. Ниже приведены типы данных 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
В этой категории хранится полный спектр символов Юникода, использующих кодировку символов UTF-16.
Типы данных строк символов Юникода
| Тип данных | Описание | Нижний предел | Верхний предел | Память |
|---|---|---|---|---|
| нчар | Это строка Unicode фиксированной ширины. | 0 символов | 4000 символов | 2 раза n байт |
| нварчар | Это строка Юникода переменной ширины. | 0 символов | 4000 символов | 2 раза n байт + 2 байта |
| текст | Это строка Юникода переменной ширины. | 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
Результат
Другие типы данных в SQL
Это другие типы данных SQL-сервера, описание которых приведено ниже:
| Тип данных | Описание |
|---|---|
| Курсор | Его вывод представляет собой столбец sp_cursor_list и sp_describe_cursor. Он возвращает имя курсорной переменной. |
| Версия строки | Эта версия штампует строки таблицы. |
| Иерархия | Этот тип данных представляет позицию в иерархии. |
| Уникальный идентификатор | Преобразование из символьного выражения. |
| Sql_variant | Он хранит значения типов данных, поддерживаемых SQL-сервером. |
| XML | Он хранит данные XML в столбце. |
| Тип пространственной геометрии | Он представляет данные в плоской системе координат. |
| Тип пространственной географии | Он представляет данные в круглоземной системе координат. |
| ТАБЛИЦЫ | Он сохраняет набор результатов для последующей обработки. |
Интересные факты!
- Тип данных CHAR быстрее, чем тип данных SQL VARCHAR при получении данных.
Итоги
- Каждый столбец в таблицах определяется своим типом данных во время создания таблицы.
- Существует шесть основных категорий и еще одна дополнительная категория. Прочее разное имеет девять подкатегорий. SQL сервер доступные типы и размеры данных.
- Переменные SQL: объявление, установка и выбор переменной SQL Server
- Как создать права входа, пользователя и предоставления разрешений в SQL Server
- Учебное пособие по SQL Server в формате PDF для начинающих (скачать бесплатно)
- 40 лучших вопросов и ответов на собеседовании SSIS (2023 г.)
- 20 лучших вопросов и ответов на собеседовании SSRS (2023 г.)
Типы данных в SQL
В SQL каждый столбец (в таблице) имеет свой тип данных, который ограничивает то, что может храниться в столбце. Например, если тип данных столбца — INT , то в этом столбце могут храниться только целочисленные значения, такие как 0 , 1 , -1 и т.д.
Различные СУБД поддерживают различные типы данных. Рассмотрим одни из наиболее часто используемых типов данных в SQL Server, MySQL, PostgreSQL и Oracle.
Типы данных в SQL Server
Целочисленные типы данных
| Тип данных | Описание |
| BIT | Может содержать один бит (0 или 1) или 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. |
Строковые типы данных
| Тип данных | Описание |
| CHAR(n) | Может содержать символы фиксированной длины (n — это фиксированная длина, максимум 8000 символов). |
| VARCHAR(n) | Может содержать символы n длины (n — это переменная длины, максимум 8000 символов). |
| TEXT | Может содержать символы размером до 2 ГБ. |
| IMAGE | Может содержать двоичную строку размером до 2 ГБ. |
Типы данных Даты и Времени
| Тип данных | Описание |
| DATETIME | Может содержать дату и время от 1 января 1753 года до 31 декабря 9999 года. |
| DATETIME2 | Может содержать дату и время от 1 января 0001 года до 31 декабря 9999 года. |
| DATE | Может содержать только дату от 1 января 0001 года до 31 декабря 9999 года. |
| TIME | Может содержать только время. |
Примечание: SQL Server поддерживает множество других типов данных. Чтобы узнать больше, читайте документацию SQL Server.
Типы данных в MySQL
Целочисленные типы данных
| Тип данных | Описание |
| BIT(n) | Может содержать n-битные значения (n может варьироваться от 1 до 64). |
| TINYINT | Может содержать числа в диапазоне от -128 до 127. |
| SMALLINT | Может содержать числа в диапазоне от -32,768 до 32,767. |
| MEDIUMINT | Может содержать числа в диапазоне от -8,388,608 до 8,388,607. |
| INT | Может содержать числа в диапазоне от -2,147,483,648 до 2,147,483,647. |
| BIGINT | Может содержать числа в диапазоне от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807. |
Строковые типы данных
| Тип данных | Описание |
| CHAR(n) | Может содержать символы фиксированной длины (n — это фиксированная длина, максимум 8000 символов). |
| VARCHAR(n) | Может содержать символы n длины (n — это переменная длины, максимум 8000 символов). |
| BINARY(n) | Может содержать двоичные строки фиксированной длины (n — это фиксированная длина). |
| VARBINARY(n) | Может содержать двоичные строки заданной длины (n — это переменная длины). |
| TINYTEXT | Может содержать до 255 символов. |
| TEXT(n) | Может содержать символы размером до 65,535 байт. |
| MEDIUMTEXT | Может содержать до 16,777,215 символов. |
| LONGTEXT | Может содержать до 4,294,967,295 символов. |
| BLOB(n) | Может содержать большие двоичные объекты размером до 65,535 байт. |
| MEDIUMBLOB | Может содержать большие двоичные объекты размером до 16,777,215 байт. |
| LONGBLOB | Может содержать большие двоичные объекты размером до 4,294,967,295 байт. |
Типы данных Даты и Времени
| Тип данных | Описание |
| DATE | Может содержать дату в формате ГГГГ-ММ-ДД и в диапазоне от 1000-01-01 до 9999-12-31. |
| DATETIME | Может содержать дату и время в формате ГГГГ-ММ-ДД чч:мм:сс. |
| TIME | Может содержать только время в формате чч:мм:сс и в диапазоне от -838:59:59 до 838:59:59. |
| YEAR | Может содержать год в 4-значном формате и в диапазоне от 1901 до 2155. |
| TIMESTAMP | Может содержать временную метку от текущего часового пояса до UTC. |
Примечание: MySQL поддерживает множество других типов данных. Чтобы узнать больше, читайте документацию MySQL.
Типы данных в PostgreSQL
Целочисленные типы данных
| Тип данных | Описание |
| SMALLINT | Может содержать числа в диапазоне от -32,768 до 32,767. |
| INTEGER | Может содержать числа в диапазоне от -2,147,483,648 до 2,147,483,647. |
| BIGINT | Может содержать числа в диапазоне от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807. |
| DECIMAL | Может содержать числа с 131072 цифр до десятичной точки и 16383 цифр после десятичной точки. |
| SMALLSERIAL | Может содержать автоматически увеличивающиеся числа от 1 до 32767. |
| SERIAL | Может содержать автоматически увеличивающиеся числа от 1 до 2147483647. |
| BIGSERIAL | Может содержать автоматически увеличивающиеся числа от 1 до 9223372036854775807. |
Строковые типы данных
| Тип данных | Описание |
| CHAR(n) | Может содержать символы фиксированной длины (n — это фиксированная длина). |
| VARCHAR(n) | Может содержать символы n длины (n — это переменная длины). |
| TEXT | Может содержать символы без ограничений. |
Типы данных Даты и Времени
| Тип данных | Описание |
| TIMESTAMP | Может содержать дату и время. |
| DATE | Может содержать только дату. |
| TIME | Может содержать только время. |
Примечание: PostgreSQL поддерживает множество других типов данных. Чтобы узнать больше, читайте документацию PostgreSQL.
Типы данных в Oracle
Целочисленные типы данных
| Тип данных | Описание |
| NUMBER | Может содержать числа. |
Строковые типы данных
| Тип данных | Описание |
| CHAR(n) | Может содержать символы фиксированной длины, размером до 2000 байт (n — это фиксированная длина). |
| VARCHAR(n) | Может содержать символы n длины, размером до 4000 байт (n — это переменная длины). |
| LONG | Может содержать символы размером до 2 ГБ. |
Типы данных Даты и Времени
| Тип данных | Описание |
| TIMESTAMP | Может содержать дату и время. |
| DATE | Может содержать только дату от 1 января 4712 до н.э. до 31 декабря 9999 н.э. |
| TIME | Может содержать только время. |
Примечание: Oracle поддерживает множество других типов данных. Чтобы узнать больше, читайте документацию Oracle.
Типы данных SQL: какие бывают и как с ними работать
Что это такое? Типы данных SQL необходимы для организации работы всей базы. В таблице каждый столбец обязан иметь имя и указание на информацию, которая в нем содержится. Это определяет как язык, на котором написана БД, будет взаимодействовать с наполнением таблицы.
Какие бывают? В каждой конкретной СУБД существуют свои типы данных. Более того, в некоторых системах они могут иметь одинаковое название, но разные функции, поэтому всегда важно знакомиться с документацией до начала работы.
В статье рассказывается:
- Задачи типов данных в SQL
- Виды типов данных SQL
- Хранение типов данных SQL
- Преобразование типов данных
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.
Бесплатно от Geekbrains
Задачи типов данных в SQL
Для начала определим, о каких данных мы говорим? В данной статье речь пойдёт о типе данных, которые любая переменная или столбец могут хранить в MS SQL Server.
Когда мы создаём любую таблицу или переменную, мы указываем имя, а также тип данных, которые будут храниться.
Тип данных таблицы SQL, которые будут храниться в столбце или в переменной, необходимо определять заранее. Это ограничит пользователя от возможности ввести любые неожиданные или недействительные данные.
Как наиболее эффективно использовать память? Для начала назначьте соответствующий тип данных переменной или столбцу, в котором будет выделяться тот объём, который необходим системной памяти для данных столбца SQL.
MS SQL обеспечивает широкую категорию типов данных, которая соответствует потребностям конкретного пользователя: например, двоичные изображения, дата и др.
В качестве иллюстрации можно взять простую страницу регистрации приложения web-сайта. Мы имеем три поля ввода: Имя, Фамилия, Контактный номер.
Узнай, какие ИТ — профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!
Скачивайте и используйте уже сегодня:

Павел Симонов
Исполнительный директор Geekbrains
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
Получить подборку бесплатно
Уже скачали 24090
Обратите внимание, что в режиме реального времени:
- поля «Имя» и «Фамилия» всегда будут буквенными;
- поле «Контактный номер» всегда будет числовым.
Таким образом, «Имя» и «Фамилия» надо указать как символ, а «Контактный номер» – как целое число.
Каждое поле имеет определённый тип данных. Это могут быть числовые данные, буквенные, формат даты и др.
У разных типов данных будут различные требования к памяти. Для того чтобы память использовалась эффективно, определяйте переменную или столбец с типом данных, которые будут храниться в нём.
Виды типов данных SQL
Строковые типы данных
К этому типы относят имена, названия, адреса и другие данные, которые выражаются словами. Строковые типы – самые распространённые.
Независимо от типа строки, её всегда заключают в одинарные кавычки. Все строковые типы условно делятся на две группы: переменной и фиксированной длины.
У строк с переменной длиной есть ограничение по максимальному размеру поля данной СУБД, но нет ограничений «сверху». В некоторых типах встречается «нижняя граница» – минимальное количество символов. В целом, возможны разные по длине значения, и необходимости ставить дополнительные пробелы при этом нет.
Длину строк фиксированной длины определяют заранее, на этапе определения таблицы. В качестве примера можно привести поля, хранящие номера телефонов. Для них выделяют одиннадцать символов, а остальные знаки просто не сохраняются. Если же пользователь не до конца заполнит поле, СУБД автоматически завершит строку, добавив пробелы.
Определение фиксированной длины повышает производительность: получение, изменение и сортировка данных реализуется намного быстрее, когда в СУБД заложено конкретное количество символов на строку. Индексирование столбцов тоже увеличивает скорость работы: в некоторых СУБД оно возможно только в случае определения фиксированной длины строки.
Для вас подарок! В свободном доступе до 26.11 —>
Скачайте ТОП-10
бесплатных нейросетей
для программирования
Помогут писать код быстрее на 25%
Чтобы получить подарок, заполните информацию в открывшемся окне
Перечислим основные строковые типы данных:
- CHAR – фиксированная длина строки. В процессе создания таблицы определяется точное значение – от 1 до 225 символов;
- NCHAR – одна из разновидностей CHAR, которая поддерживает Unicode или многобайтовые символы
- TEXT (она же LONG, VARCHAR или MEMO) – строки переменной длинны
- NVARCHAR – подвид TEXT, которые поддерживает Unicode или многобайтовые символы
Давайте разберёмся, почему не стоит хранить в числовых форматах номера документов, домов и телефонов.
Есть несколько причин. Во-первых, строковые форматы являются более экономичным способом хранить данные в БД. Во-вторых, в числовом типе данных удаляются все нули в начале значения: они считываются как неинформативные и, следовательно, лишние. При этом номера документов вполне могут начинаться с нулей: например, 0006382. После переработки данные просто станут некорректными.
Дарим скидку от 60%
на курсы от GeekBrains до 26 ноября
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей

Выбирайте числовой формат, когда вам необходимо производить операции сложения или вычитания полей, вычислять среднее значение столбца, находить максимальные значения.
Числовые типы данных
Этот тип данных обеспечивает возможность не только хранить числа, но и производить математические операции и прочие логические действия.
Числа отличаются от строк тем, что без кавычек помещаются в БД. Типы отличаются друг от друга размерами диапазонов значений. Чем меньше допустимый диапазон, тем меньше он требует места для хранения введённого числа.
Только до 23.11
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:

ТОП-100 площадок для поиска работы от GeekBrains

20 профессий 2023 года, с доходом от 150 000 рублей

Чек-лист «Как успешно пройти собеседование»
Чтобы зарегистрироваться на бесплатный интенсив и получить в подарок подборку файлов от GeekBrains, заполните информацию в открывшемся окне
Некоторые типы хранят исключительно целые числа, а другие могут содержать принимающие дроби.
Названия могут отличаться в зависимости от конкретной СУБД; актуальные заголовки проверяйте в документации. Примерно опишем варианты:
- NUMBER или FLOAT – числа с плавающими точками;
- NUMERIC или DECIMAL – числа с фиксированными или плавающими точками;
- BIT – одноразрядное значение, которое используют для битовых флагов: 0 или 1;
- REAL – 4-байтовые числа с плавающими точками;
- INTEGER или INT – целые 4-байтовые числа, у которых диапазон значений варьируется от -2147483648 до 2147483647;
- TINYINT – целые 1-байтовые числа в диапазоне от 0 до 255;
- SMALLINT – целые 2-байтовые числа в диапазоне от -32768 до 32767.
В некоторых СУБД денежный тип данных выделен в отдельную категорию. Он может относиться к типу DECIMAL, но обладать более удобным для денежных значений диапазоном. Его называют MONEY или CURRENCY.
Типы данных, включающие обозначение даты и времени
То или иное обозначение времени и даты включено во всех СУБД. Они, как и числовые форматы, отличаются друг от друга степенью точности и допустимым диапазоном. Варианты:
- DATE – дата;
- TIME – время;
- TIMESTAMP или DATETIME – дата и время;
- SMALLDATETIME – дата и время с точностью до минуты.
Бывают и более точные форматы, мы привели лишь самые популярные.
Бинарные типы данных
Этот тип данных обеспечивает содержание любых данных в бинарном виде. Это может быть графика, текст, медиа или двоичный код. На самом деле, бинарные типы используют довольно редко, поскольку они плохо совместимы в формате разных СУБД. И всё же порой они упрощают работу, так что приведём основные:
- BINARY – данные в двоичном виде в диапазоне от 255 до 8000 байт;
- RAW – данные фиксированной длинны в двоичном виде в диапазоне до 255 байт;
- LONG RAW – данные переменной длины в двоичном виде в диапазоне до 2Гбайт;
- VARBINARY – данные переменной длины в двоичном виде в диапазоне до 8000 байт или до 255 байт в зависимости от реализации.
Хранение типов данных SQL
Расскажем о двух вариантах хранения, которые позволяют хранить объекты LOB, экономя дисковое пространство.
Хранение данных типа FILESTREAM
LOB – большие объекты – хранятся в SQL Server с помощью типа данных MAX или VARBINARY. BLOB — большие двоичные объекты – хранятся в базе данных . Из-за этого могут возникать проблемы с производительностью, когда вы пытаетесь сохранить видео- или аудиофайлы. Во избежание нарушения работы такие данные сохраняют во внешних файлах за пределами базы данных.
Объекты LOB хранятся в файловой системе NTFS. Этот тип хранения позволяет данным, хранящимся вне базы, управляться базой. Основные характеристики:
- возможность хранения данных FILESTREAM при помощи инструкций CREATE TABLE, а в процессе работы с этими данными используются инструкции для модификации данных (DELETE, UPDATE, SELECT и INSERT);
- обеспечение для данных типа FILESTREAM того же уровня безопасности, что и у данных, которые хранятся внутри базы.
Разреженные столбцы (sparsecolumns)
Этот вариант хранения преследует совершенно иную цель.
Если тип FILESTREAM хранит объекты LOB вне базы данных, то разреженные столбцы минимизируют дисковое пространство, которое занимает база данных.
Это обеспечивает оптимизацию хранения столбцов, у которых большинство значений равняется null. Когда вы используете разреженные столбцы для хранения значений null, вам не требуется дисковое пространство. При этом для хранения значений, которые отличаются от null, потребуется дополнительные байты (от 2 до 4). Поэтому разреженные столбцы рекомендуются к использованию только тогда, когда вы ожидаете сэкономить не менее 20% дискового пространства.
Популярные статьи





Разреженные столбцы определяют так же, как и другие столбцы таблицы, а значит, обращаются к ним аналогично. При обращении к разреженному столбцу используйте инструкции DELETE, UPDATE , SELECT и INSERT так же, как и при работе с обычными столбцами.
Но всё же есть и отличие: когда вы создаёте разреженные столбцы, применяйте аргумент SPARSE, чтобы определить конкретный столбец разреженным.
Вот пример того, как это сделать:
имя_столбца тип_данных SPARSE
Разреженные столбцы таблицы при необходимости можно группировать в наборы столбцов. Это альтернативный способ хранения значений во всех разреженных столбцах таблицы.
Значение NULL
«Null» является одним из специальных значений, которые присваивают ячейкам таблиц. Его применяют в тех случаях, когда информация неприменима или совсем неизвестна. Приведём пример, если вы не знаете домашний номер телефона клиента, вы находите столбец home_telephone и присваиваете соответствующей ячейке значение null.
Важно понимать, что когда значение любой переменной арифметического действия равно null, результат его вычисления тоже будет обозначен как null.
Откройте для себя захватывающий мир IT! Обучайтесь со скидкой до 61% и получайте современную профессию с гарантией трудоустройства. Первый месяц – бесплатно. Выбирайте программу прямо сейчас и станьте востребованным специалистом.
Поэтому, если у вас есть унарная арифметическая операция, в которой значение выражения A равняется null, действие +A или -A будет возвращать null.
Бинарные выражения будут действовать так же. Когда A и B равняется null, результат любых операций (умножение, деление, деление по модулю, сложения, вычитания) этих операндов будет тоже обозначен как null.
Когда в выражении содержится операция сравнения, а значение одного или обоих операндов равняется null, результат действия снова будет null.
Обратите внимание, что значение 0, пустой строки и null не должны быть одинаковыми. Значение null всегда отличается от всех остальных значений.
Значение null сохраняется в столбцах таблицы только тогда, когда это явно разрешается определением данного столбца. При этом значения null недоступны для столбца, если в его определении напрямую указано «NOT NULL».
Когда для столбца с каким-либо типом данных не указано напрямую NULL или NOT NULL, мы присваиваем следующие значения:
- NULL, когда значение параметров ANSI_NULL_DFLT_ON в инструкции SET равняется on.
- NOT NULL, когда значение параметров ANSI_NULL_DFLT_OFF в инструкции SET равняется on.
Если вы не активируете инструкцию set, столбец будет автоматически определяться как NOT NULL. При этом столбцы типа TIMESTAMP не могут иметь значение null ни при каких обстоятельствах.
Преобразование типов данных
Часто возникает необходимость конвертации значений одного типа в значение другого. Как же изменить тип данных в SQL?
Для выполнения конвертирования числа в символьные данные используют специализированную функцию STR. Чтобы выполнить другие преобразования, SQL Server содержит универсальные функции CAST и CONVERT, которые позволяют преобразовывать значения одного типа в значения другого типа. Эти функции взаимозаменяемы. Приведём пример:
CAST(выражение AS тип_данных) CONVERT(тип_данных[(длина)], выражение [,стиль])
Существует аргумент «стиль», который делает возможным управление стилями представления значений некоторых типов данных (нецелочисленные, дата и время, денежные).
DECLARE @d DATETIME DECLARE @s CHAR(8) SET @s=’29.10.01’ SET @d=CAST(@s AS DATETIME)2.3.
В данной статье мы постарались описать основные типы данных, которые традиционно используются в SQL. Однако важно помнить, что в разных проектах заголовки и точные характеристики типов могут отличаться. Обращайте внимание на ваши требования и подбирайте тип, позволяющий их реализовать.
