Типы данных SQL

Типы данных SQL
Январь 2025
8 минут
Что произойдет, если цена товара в интернет-магазине будет храниться в виде текста, а дата заказа записана словами? Например, в колонке «Цена» указано «три тысячи» или «2999₽», а в поле даты доставки — «завтра». При таких вводных посчитать общую выручку или запланировать доставку будет невозможно!

Вот почему в SQL существуют строгие типы данных — они задают правила хранения данных. Разберемся, какие типы бывают и как их правильно применять.

Зачем нужны типы данных в SQL

Неправильный тип данных может увеличить размер базы на 30–50% и замедлить выполнение запросов в 1,5–2 раза. Поэтому правильный выбор критически важен для работы. Разберемся в основных понятиях и посмотрим, как это устроено.

База данных (БД) — это как большая электронная таблица, где интернет-магазин хранит информацию о товарах, заказах и клиентах. Например, в одной колонке записаны названия товаров, в другой — цены, а в третьей — даты заказов.
Система управления базами данных (СУБД) — это программа, которая следит за тем, чтобы все данные были на своих местах и работали правильно. Она не даст записать текст в колонку для цен или число в поле для даты.

SQL — это язык, с помощью которого магазин «разговаривает» с базой данных. Например, SQL-команда может найти все заказы на сумму больше 5000 рублей или добавить новый заказ.

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

Взаимодействие SQL с базой данных можно представить как пошаговый процесс, где каждый элемент выполняет свою роль. Например:

  1. Пользователь оформляет заказ на сайте.
  2. SQL-запрос автоматически создается для добавления нового заказа в базу.
  3. СУБД принимает SQL-запрос, проверяет его корректность и сохраняет данные.
  4. База данных сохраняет всю информацию о заказе и передает подтверждение обратно на сайт.
Как SQL-запросы обрабатываются СУБД и возвращают результат

Классификация типов данных SQL

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

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

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

Числовые типы делятся на две основные группы: целочисленные и дробные.

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

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

  • TINYINT — хранит маленькие целые числа (от 0 до 255).
Пример: флаг статуса товара: 0 — нет в наличии, 1 — в наличии.

  • SMALLINT — хранит небольшие целые числа (от -32 768 до 32 767).
Пример: количество сотрудников в отделе.

  • INT (INTEGER) — стандартный тип для хранения целых чисел (от -2 147 483 648 до 2 147 483 647).
Пример: id заказа в интернет-магазине.

  • BIGINT — хранит очень большие целые числа (до ±9 квинтиллионов).
Пример: учет больших объемов транзакций в банковской системе.

Дробные типы данных

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

  • FLOAT — с плавающей точкой небольшой точности.
Пример: обменные курсы валют, где допустима погрешность.

  • DOUBLE — с плавающей точкой двойной точности.
Пример: расчеты по сложным формулам, где важна высокая точность.

  • DECIMAL (NUMERIC) — фиксированная точность, используется для финансовых данных.

Строковые типы данных

Строковые типы данных, используемые в sql, нужны для хранения текстов: имен клиентов, адресов, названий товаров и комментариев. В бизнесе они встречаются постоянно — от описаний продукции до отзывов покупателей.

  • CHAR(n) — строка фиксированной длины. Если введенный текст короче заданной длины, оставшиеся символы будут заполнены пробелами.
Пример: коды валют или коды стран (например, "USD", "RU").

  • TEXT — длинный текст до 65 535 символов.
Пример: описание товаров, отзывы покупателей, статьи в блогах.

  • TINYTEXT, MEDIUMTEXT, LONGTEXT — разновидности TEXT с разным максимальным размером: от коротких заметок до больших текстов.
Пример: комментарии к товарам или блог-посты.

  • ENUM — строка, ограниченная заранее заданным списком значений.
Пример: статус заказа ('Новый', 'В обработке', 'Доставлен').

  • SET — набор значений, выбранных из заранее заданного множества.
Пример: категории товаров, в которые может входить продукт (например, 'Электроника', 'Новинки').

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

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

  • DATE — хранит только дату в формате YYYY-MM-DD.
Пример: дата оформления заказа: "2024-01-20".

  • TIME — хранит только время в формате HH:MM:SS.
Пример: время доставки заказа: "15:30:00".

  • DATETIME — сочетает дату и время в формате YYYY-MM-DD HH:MM:SS.
Пример: дата и время регистрации пользователя: "2024-01-20 14:45:00".

  • TIMESTAMP — автоматически сохраняет дату и время события. Учитывает временную зону.
Пример: дата последнего обновления заказа.

  • YEAR — хранит только год в формате YYYY.
Пример: год выпуска товара: "2023".
DATE, TIME, DATETIME и TIMESTAMP — типы данных для работы с датой и временем в SQL

Символьные типы данных

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

  • CHAR(n) — строка фиксированной длины. Если введенный текст короче заданной длины, SQL автоматически заполняет оставшиеся символы пробелами.
Пример: коды стран ("RU", "US") или индексы ("101000").

  • VARCHAR(n) — строка переменной длины до заданного количества символов. Это наиболее используемый тип для хранения текстовых данных, если длина строки может варьироваться.
Пример: названия товаров, имена клиентов.

  • BINARY(n) — данные хранятся в виде байтов, что удобно для хранения хэшей и зашифрованных данных.
Пример: хэшированные пароли пользователей.

  • ENUM — строка, ограниченная набором заранее определенных значений. Удобен для хранения фиксированных вариантов, например, статусов или категорий.
Пример: статус заказа ('Новый', 'В обработке', 'Доставлен').

  • SET — множество значений, выбранных из заранее заданного списка. Позволяет хранить сразу несколько значений в одном поле.
Пример: метки товара ('Новинка', 'Акция', 'Хит продаж').

Логические типы данных

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

  • BOOLEAN (BOOL) — принимает только два значения: TRUE (истина) или FALSE (ложь).
Пример: в наличии ли товар на сайте или нет.

  • BIT(n) — битовое значение, где n определяет количество бит. Чаще всего используется BIT(1) для хранения логических значений.
Пример: права доступа (0 — нет доступа, 1 — есть доступ).

  • TINYINT(1) — в некоторых СУБД (например, MySQL) используется как аналог BOOLEAN.
Использование логических типов делает бизнес-процессы более прозрачными и управляемыми. Это незаменимый инструмент для контроля состояния объектов, автоматизации и принятия решений.

Примеры использования данных в SQL

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

Давайте рассмотрим пример.

Задача: создать таблицу заказов, которая будет хранить информацию о клиенте, товаре, дате заказа, общей сумме и статусе оплаты.
CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,                      -- Уникальный номер заказа
    CustomerName VARCHAR(100),                   -- Имя клиента
    ProductName VARCHAR(100),                    -- Название товара
    OrderDate DATETIME DEFAULT CURRENT_TIMESTAMP, -- Дата и время оформления заказа
    TotalAmount DECIMAL(10, 2),                 -- Сумма заказа с точностью до копеек
    OrderStatus ENUM('Новый', 'В обработке', 'Доставлен', 'Отменен'),  -- Статус заказа
    IsPaid BOOLEAN DEFAULT FALSE                -- Оплачен ли заказ
);
Как работают разные типы данных столбцов sql в этом примере:

  • INT (OrderID) — уникальный номер заказа;
  • VARCHAR (CustomerName, ProductName) — хранит текстовую информацию: имя клиента и название товара;
  • DATETIME (OrderDate) — фиксирует дату и время оформления заказа;
  • DECIMAL (TotalAmount) — хранит сумму заказа с точностью до копеек;
  • ENUM (OrderStatus) — ограничивает статус заказа фиксированными значениями, предотвращая ошибки ввода;
  • BOOLEAN (IsPaid) — указывает, оплачен ли заказ.

Теперь нам нужно найти все неоплаченные заказы на сумму больше 5000 рублей, которые находятся в обработке.
SELECT OrderID, CustomerName, TotalAmount
FROM Orders
WHERE TotalAmount > 5000
  AND OrderStatus = 'В обработке'
  AND IsPaid = FALSE;
Запрос вернет список заказов с высокой суммой, которые еще не оплачены и находятся в обработке. Это поможет отделу продаж вовремя напомнить клиентам о необходимости оплаты.

Где хранятся типы данных SQL

Данные не просто указываются в таблицах — за хранение типов данных SQL и контроль отвечает Система управления базами данных. СУБД проверяет, чтобы в каждом столбце таблицы находились данные строго заданного типа. Это помогает избежать ошибок и поддерживать порядок.
Таблица с именем и датой рождения, с датой и статусом, с названием и ценой
Когда создается таблица, СУБД сохраняет информацию о ее структуре и типах данных в системных каталогах или метаданных. Эти служебные таблицы содержат информацию о всех объектах базы данных: таблицах, столбцах, индексах и их типах.

Почему это важно?

  • Целостность данных: СУБД не позволит записать текст в числовое поле или дату в текстовом формате.
  • Оптимизация хранения: разные типы данных занимают разное количество памяти, и СУБД хранит их наиболее эффективно.
  • Ускорение запросов: индексы и фильтры работают быстрее, если типы данных SQL в таблице подобраны правильно.
  • Безопасность данных: правильный выбор типов данных помогает защитить базу от ошибок и взломов. Например, если в поле для цены можно записывать только числа, злоумышленник не сможет вставить вредоносный код вместо числа.
Интенсив РБК Pro на выбор
3 мини-курса в подарок
Подписка РБК Pro на 6 месяцев
Профессия Аналитик со скидкой до 57% и подарками на 135 000 ₽

Преобразование типов данных в SQL

Иногда данные в базе записаны не в том формате, который нужен для работы. Например, цена товара хранится как текст. Чтобы работать с данными в нужном формате, в SQL используется функция CAST. Она позволяет преобразовать один тип данных в другой — текст в число, дату в текст и многое другое. Это помогает корректно выполнять расчеты, удобно отображать данные и объединять информацию из разных таблиц.
Как работает преобразование данных с помощью CAST в SQL
Зачем нужно преобразовывать типы данных?

  • Правильные расчеты. Нельзя сложить текст "500" и число 1000. Но если превратить текст в число, получится 1500.
  • Удобное отображение. Дату 2024-01-15 можно превратить в текст "15 января 2024", чтобы красиво показать ее на сайте.
  • Сравнение и фильтрация. Чтобы сравнить столбцы с разными типами данных, их нужно привести к одному формату.
  • Оптимизация запросов. SQL быстрее обрабатывает запросы, если данные в правильном формате.

Как изменить тип данных в sql:

CAST (выражение AS целевой_тип)
выражение — данные, которые нужно преобразовать
целевой_тип — тип данных, в который выполняется преобразование

Разберем на примере.
Задача — нужно подготовить отчет по заказам интернет-магазина, где:

  • цена товара хранится как текст, а для расчетов нужна цифра;
  • дату нужно вывести в текстовом формате в виде: "Заказ оформлен 10 января 2024";
  • показать заказы с суммой больше 10 000 рублей.

Исходная таблица Orders:
Решение с использованием CAST:
SELECT 
    CustomerName,
    CAST(Price AS DECIMAL(10, 2)) * Quantity AS TotalAmount,
    'Заказ оформлен ' + CAST(OrderDate AS VARCHAR) AS FormattedOrderDate
FROM Orders
WHERE CAST(Price AS DECIMAL(10, 2)) * Quantity > 10000;
Результат запроса:
Почему здесь уместно преобразование даты в текст?

  • SQL не позволяет напрямую объединить дату и текст.
  • С помощью CAST(OrderDate AS VARCHAR) мы превратили дату в строку, чтобы добавить фразу "Заказ оформлен".
  • Это удобно для создания текстовых отчетов или писем клиентам.

Функция CAST позволяет гибко работать с разными типами данных. Здесь мы привели цену к числу для расчетов, а дату — к тексту для удобного отображения в отчете.

Вывод

Умение грамотно работать с типами данных позволяет быстрее анализировать информацию, автоматизировать бизнес-процессы и принимать обоснованные решения.
Сравнение оптимизированной и ошибочной структуры базы данных
Если вы хотите углубить свои знания и научиться уверенно работать с SQL, рекомендуем пройти курс «SQL с 0 для анализа данных» от ProductStar. Вы освоите работу с базами данных, научитесь писать эффективные запросы и анализировать большие объемы данных. Курс включает практику на реальных кейсах, поддержку ментора и сертификат, который ускорит ваш карьерный рост.

Комментарии

Нажимая кнопку «Получить консультацию», вы подтверждаете согласие на обработку персональных данных в соответствии с условиями Политики конфиденциальности

Проконсультируйтесь
с карьерным специалистом

Проанализируем ваши навыки, сферу интересов и дадим рекомендации по дальнейшему профессиональному развитию

Вам может понравиться

3
дн.
час.
мин.
сек.
:
00
:
00
:
00
скидка до 57% и подарки на 135 000 ₽
Типы данных SQL Зачем нужны типы данных в SQL Классификация типов данных SQL Где хранятся типы данных SQL Преобразование типов данных в SQL Что произойдет, если цена товара в интернет-магазине будет храниться в виде текста, а дата заказа записана словами? Например, в колонке «Цена» указано «три тысячи» или «2999₽», а в поле даты доставки — «завтра». При таких вводных посчитать общую выручку или запланировать доставку будет невозможно! Вот почему в SQL существуют строгие типы данных — они задают правила хранения данных. Разберемся, какие типы бывают и как их правильно применять. Зачем нужны типы данных в SQL Неправильный тип данных может увеличить размер базы на 30–50% и замедлить выполнение запросов в 1,5–2 раза. Поэтому правильный выбор критически важен для работы. Разберемся в основных понятиях и посмотрим, как это устроено. База данных (БД) — это как большая электронная таблица, где интернет-магазин хранит информацию о товарах, заказах и клиентах. Например, в одной колонке записаны названия товаров, в другой — цены, а в третьей — даты заказов. OrderID CustomerName ProductName Price OrderDate IsPaid 1 Иван Фомин Смартфон A53 34,990.00 2025-01-15 Да 2 Ольга Смирнова Наушники 510BT 4,990.00 2025-01-16 Нет 3 Алексей Петров Ноутбук C1001 65,500.00 2025-01-17 Да Система управления базами данных (СУБД) — это программа, которая следит за тем, чтобы все данные были на своих местах и работали правильно. Она не даст записать текст в колонку для цен или число в поле для даты. SQL — это язык, с помощью которого магазин «разговаривает» с базой данных. Например, SQL-команда может найти все заказы на сумму больше 5000 рублей или добавить новый заказ. Типы данных в базе данных в SQL задают правила: где должны быть числа, где текст, а где даты. Если цену товара записать как текст "три тысячи", магазин не сможет посчитать общую выручку. А если указать дату доставки словами "завтра", система не напомнит клиенту о заказе. Взаимодействие SQL с базой данных можно представить как пошаговый процесс, где каждый элемент выполняет свою роль. Например: Пользователь оформляет заказ на сайте. SQL-запрос автоматически создается для добавления нового заказа в базу. СУБД принимает SQL-запрос, проверяет его корректность и сохраняет данные. База данных сохраняет всю информацию о заказе и передает подтверждение обратно на сайт. Теперь, когда мы разобрались, зачем нужны типы данных и как SQL взаимодействует с базой данных, важно понять, какие именно типы данных существуют и как их правильно использовать. Каждый тип данных в SQL решает конкретные задачи. Давайте рассмотрим основные категории. Числовые типы данных Предназначены для хранения числовых значений: от простых количественных показателей до сложных финансовых расчетов. Используются в бизнесе для хранения цен, скидок, остатков товаров, номеров заказов. Числовые типы делятся на две основные группы: целочисленные и дробные. Целочисленные типы данных Используются для хранения целых чисел, например, для записи количества товара на складе или номера заказа. TINYINT — хранит маленькие целые числа (от 0 до 255). Пример: флаг статуса товара: 0 — нет в наличии, 1 — в наличии. SMALLINT — хранит небольшие целые числа (от -32 768 до 32 767). Пример: количество сотрудников в отделе. INT (INTEGER) — стандартный тип для хранения целых чисел (от -2 147 483 648 до 2 147 483 647). Пример: id заказа в интернет-магазине. BIGINT — хранит очень большие целые числа (до ±9 квинтиллионов). Пример: учет больших объемов транзакций в банковской системе. Дробные типы данных Используются для хранения чисел с десятичной частью, что важно для точных расчетов, например, при работе с ценами или процентами. FLOAT — с плавающей точкой небольшой точности. Пример: обменные курсы валют, где допустима погрешность. DOUBLE — с плавающей точкой двойной точности. Пример: расчеты по сложным формулам, где важна высокая точность. DECIMAL (NUMERIC) — фиксированная точность, используется для финансовых данных. Строковые типы данных Строковые типы данных, используемые в sql, нужны для хранения текстов: имен клиентов, адресов, названий товаров и комментариев. В бизнесе они встречаются постоянно — от описаний продукции до отзывов покупателей. CHAR(n) — строка фиксированной длины. Если введенный текст короче заданной длины, оставшиеся символы будут заполнены пробелами. Пример: коды валют или коды стран (например, "USD", "RU"). TEXT — длинный текст до 65 535 символов. Пример: описание товаров, отзывы покупателей, статьи в блогах. TINYTEXT, MEDIUMTEXT, LONGTEXT — разновидности TEXT с разным максимальным размером: от коротких заметок до больших текстов. Пример: комментарии к товарам или блог-посты. ENUM — строка, ограниченная заранее заданным списком значений. Пример: статус заказа ('Новый', 'В обработке', 'Доставлен'). SET — набор значений, выбранных из заранее заданного множества. Пример: категории товаров, в которые может входить продукт (например, 'Электроника', 'Новинки'). Типы данных даты и времени Помогают хранить информацию, чтобы фиксировать дату заказа, планировать доставку или анализировать продажи по месяцам. DATE — хранит только дату в формате YYYY-MM-DD. Пример: дата оформления заказа: "2024-01-20". TIME — хранит только время в формате HH:MM:SS. Пример: время доставки заказа: "15:30:00". DATETIME — сочетает дату и время в формате YYYY-MM-DD HH:MM:SS. Пример: дата и время регистрации пользователя: "2024-01-20 14:45:00". TIMESTAMP — автоматически сохраняет дату и время события. Учитывает временную зону. Пример: дата последнего обновления заказа. YEAR — хранит только год в формате YYYY. Пример: год выпуска товара: "2023". Символьные типы данных Используются для хранения коротких текстов фиксированной или переменной длины. Подходят для записи кодов товаров, артикулов, статусов заказов. CHAR(n) — строка фиксированной длины. Если введенный текст короче заданной длины, SQL автоматически заполняет оставшиеся символы пробелами. Пример: коды стран ("RU", "US") или индексы ("101000"). VARCHAR(n) — строка переменной длины до заданного количества символов. Это наиболее используемый тип для хранения текстовых данных, если длина строки может варьироваться. Пример: названия товаров, имена клиентов. BINARY(n) — данные хранятся в виде байтов, что удобно для хранения хэшей и зашифрованных данных. Пример: хэшированные пароли пользователей. ENUM — строка, ограниченная набором заранее определенных значений. Удобен для хранения фиксированных вариантов, например, статусов или категорий. Пример: статус заказа ('Новый', 'В обработке', 'Доставлен'). SET — множество значений, выбранных из заранее заданного списка. Позволяет хранить сразу несколько значений в одном поле. Пример: метки товара ('Новинка', 'Акция', 'Хит продаж'). Логические типы данных Хранят только два значения: истина или ложь. Это удобно для обозначения простых состояний, например: товар в наличии или нет, заказ оплачен или нет, пользователь активен или неактивен. BOOLEAN (BOOL) — принимает только два значения: TRUE (истина) или FALSE (ложь). Пример: в наличии ли товар на сайте или нет. BIT(n) — битовое значение, где n определяет количество бит. Чаще всего используется BIT(1) для хранения логических значений. Пример: права доступа (0 — нет доступа, 1 — есть доступ). TINYINT(1) — в некоторых СУБД (например, MySQL) используется как аналог BOOLEAN. Использование логических типов делает бизнес-процессы более прозрачными и управляемыми. Это незаменимый инструмент для контроля состояния объектов, автоматизации и принятия решений. Примеры использования данных в SQL Чтобы база данных работала быстро и без ошибок, важно не только правильно выбрать типы данных полей SQL, но и сочетать их в одной таблице. В реальных бизнес-задачах разные типы данных дополняют друг друга, обеспечивая надежное хранение и обработку информации. Давайте рассмотрим пример. Задача: создать таблицу заказов, которая будет хранить информацию о клиенте, товаре, дате заказа, общей сумме и статусе оплаты. CREATE TABLE Orders ( OrderID INT PRIMARY KEY, -- Уникальный номер заказа CustomerName VARCHAR(100), -- Имя клиента ProductName VARCHAR(100), -- Название товара OrderDate DATETIME DEFAULT CURRENT_TIMESTAMP, -- Дата и время оформления заказа TotalAmount DECIMAL(10, 2), -- Сумма заказа с точностью до копеек OrderStatus ENUM('Новый', 'В обработке', 'Доставлен', 'Отменен'), -- Статус заказа IsPaid BOOLEAN DEFAULT FALSE -- Оплачен ли заказ ); Как работают разные типы данных столбцов sql в этом примере: INT (OrderID) — уникальный номер заказа; VARCHAR (CustomerName, ProductName) — хранит текстовую информацию: имя клиента и название товара; DATETIME (OrderDate) — фиксирует дату и время оформления заказа; DECIMAL (TotalAmount) — хранит сумму заказа с точностью до копеек; ENUM (OrderStatus) — ограничивает статус заказа фиксированными значениями, предотвращая ошибки ввода; BOOLEAN (IsPaid) — указывает, оплачен ли заказ. Теперь нам нужно найти все неоплаченные заказы на сумму больше 5000 рублей, которые находятся в обработке. SELECT OrderID, CustomerName, TotalAmount FROM Orders WHERE TotalAmount > 5000 AND OrderStatus = 'В обработке' AND IsPaid = FALSE; Запрос вернет список заказов с высокой суммой, которые еще не оплачены и находятся в обработке. Это поможет отделу продаж вовремя напомнить клиентам о необходимости оплаты. Где хранятся типы данных SQL Данные не просто указываются в таблицах — за хранение типов данных SQL и контроль отвечает Система управления базами данных. СУБД проверяет, чтобы в каждом столбце таблицы находились данные строго заданного типа. Это помогает избежать ошибок и поддерживать порядок. Когда создается таблица, СУБД сохраняет информацию о ее структуре и типах данных в системных каталогах или метаданных. Эти служебные таблицы содержат информацию о всех объектах базы данных: таблицах, столбцах, индексах и их типах. Почему это важно? Целостность данных: СУБД не позволит записать текст в числовое поле или дату в текстовом формате. Оптимизация хранения: разные типы данных занимают разное количество памяти, и СУБД хранит их наиболее эффективно. Ускорение запросов: индексы и фильтры работают быстрее, если типы данных SQL в таблице подобраны правильно. Безопасность данных: правильный выбор типов данных помогает защитить базу от ошибок и взломов. Например, если в поле для цены можно записывать только числа, злоумышленник не сможет вставить вредоносный код вместо числа. Преобразование типов данных в SQL Иногда данные в базе записаны не в том формате, который нужен для работы. Например, цена товара хранится как текст. Чтобы работать с данными в нужном формате, в SQL используется функция CAST. Она позволяет преобразовать один тип данных в другой — текст в число, дату в текст и многое другое. Это помогает корректно выполнять расчеты, удобно отображать данные и объединять информацию из разных таблиц. Зачем нужно преобразовывать типы данных? Правильные расчеты. Нельзя сложить текст "500" и число 1000. Но если превратить текст в число, получится 1500. Удобное отображение. Дату 2024-01-15 можно превратить в текст "15 января 2024", чтобы красиво показать ее на сайте. Сравнение и фильтрация. Чтобы сравнить столбцы с разными типами данных, их нужно привести к одному формату. Оптимизация запросов. SQL быстрее обрабатывает запросы, если данные в правильном формате. Как изменить тип данных в sql: CAST (выражение AS целевой_тип) выражение — данные, которые нужно преобразовать целевой_тип — тип данных, в который выполняется преобразование Разберем на примере. Задача — нужно подготовить отчет по заказам интернет-магазина, где: цена товара хранится как текст, а для расчетов нужна цифра; дату нужно вывести в текстовом формате в виде: "Заказ оформлен 10 января 2024"; показать заказы с суммой больше 10 000 рублей. Исходная таблица Orders: OrderID CustomerName Price Quantity OrderDate 1 Иван Иванов "4990" 2 2024-01-10 14:23:00 2 Ольга Смирнова "12500" 1 2024-01-11 09:45:00 3 Алексей Петров "3500" 4 2024-01-12 18:10:00 Решение с использованием CAST: SELECT CustomerName, CAST(Price AS DECIMAL(10, 2)) * Quantity AS TotalAmount, 'Заказ оформлен ' + CAST(OrderDate AS VARCHAR) AS FormattedOrderDate FROM Orders WHERE CAST(Price AS DECIMAL(10, 2)) * Quantity > 10000; Результат запроса: CustomerName TotalAmount FormattedOrderDate Ольга Смирнова 12500.00 Заказ оформлен 2024-01-11 09:45:00 Алексей Петров 14000.00 Заказ оформлен 2024-01-12 18:10:00 Почему здесь уместно преобразование даты в текст? SQL не позволяет напрямую объединить дату и текст. С помощью CAST(OrderDate AS VARCHAR) мы превратили дату в строку, чтобы добавить фразу "Заказ оформлен". Это удобно для создания текстовых отчетов или писем клиентам. Функция CAST позволяет гибко работать с разными типами данных. Здесь мы привели цену к числу для расчетов, а дату — к тексту для удобного отображения в отчете. Вывод Умение грамотно работать с типами данных позволяет быстрее анализировать информацию, автоматизировать бизнес-процессы и принимать обоснованные решения. Если вы хотите углубить свои знания и научиться уверенно работать с SQL, рекомендуем пройти курс «SQL с 0 для анализа данных» от ProductStar. Вы освоите работу с базами данных, научитесь писать эффективные запросы и анализировать большие объемы данных. Курс включает практику на реальных кейсах, поддержку ментора и сертификат, который ускорит ваш карьерный рост.