SQL-выражения: как использовать, примеры

    Команда Simple-Server
    03.06.2026
    7 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

    Кратко о задаче

    Логические выражения в SQL используются для извлечения необходимых данных, основанных на условии, которое зачастую указывается в операторе WHERE. Запросы с таким видом выражений могут начинаться с таких операторов, как SELECT, UPDATE, DELETE или INSERT.

    Также с WHERE могут использоваться операторы GROUP BY, HAVING и ORDER BY. Они предназначены для фильтрации, сортировки и ограничений получаемых в запросе строк. Более подробно с ними можно ознакомиться в статье в нашем блоге.

    Синтаксис применения логических выражений выглядит так:

    SELECT наименование_столбца1, наименование_столбца2, наименование_столбца3, …, наименование_столбцаN FROM наименование_таблицы WHERE логическое_выражение;

    В качестве примера возьмем таблицу «Staff», содержащую данные о работниках некоторой компании. Она будет состоять из следующих столбцов:

    • ID – уникальный идентификатор сотрудника.
    • FirstName – имя сотрудника.
    • SecondName – фамилия сотрудника.
    • Post – должность сотрудника.
    • Wages – заработная плата сотрудника.

    Итоговая таблица представлена ниже:

    IDFirstNameSecondNamePostWages
    1AlexanderAvdeevManager45000
    2AnatoliyAndreevJunior QA specialist30000
    3VictoriaDavydovaManager35000
    4IgorKonchalovskiyMain Developer90000
    5AlexanderаMedvedevaSenior QA specialist65000
    6AndreyGrushevskiyAnalyst40000

    Теперь составим запрос к данной таблице, применив логическое выражение:

    SELECT * FROM Staff WHERE Post = Manager;

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

    Результат запроса будет таким:

    IDFirstNameSecondNamePostWages
    1AlexanderAvdeevManager45000
    3VictoriaDavydovaManager35000

    Как видно из таблицы, в результат были внесены только те данные, которые удовлетворяют условию в WHERE.

    В операторе WHERE возможно использовать операторы AND, OR, XOR или NOT для того, чтобы организовать более сложное логическое выражение.

    Например, в описанной выше таблице запросим только те данные сотрудников, кто получает заработную плату больше 40000, но меньше 70000. Также отсортируем полученные данные в порядке убывания по столбцу «Wages». Для этого используем следующее логическое выражение в SQL-запросе:

    SELECT * FROM Staff  WHERE Wages > 40000 and Wages < 70000 ORDER BY Wages DESC;
    IDFirstNameSecondNamePostWages
    5AlexanderаMedvedevaSenior QA specialist65000
    1AlexanderAvdeevManager45000

    Числовые выражения в SQL применяются для реализации математических операций. Зачастую их используют для составления отчетности. Формируются они с использованием некоторых агрегатных функций. Среди них: MIN, MAX, COUNT, COUNT_BIG, AVG, SUM и другие. Кроме перечисленных агрегатных функций возможно использовать операторы сложения, вычитания, деления или умножения.

    Синтаксис выглядит следующим образом:

    SELECT числовое_выражение FROM наименование_таблицы [WHERE условие];

    В качестве примера снова возьмем таблицу «Staff», которая была представлена в прошлом абзаце, и составим выражение в SQL-запросе:

    SELECT count(*) FROM Staff;

    Данный запрос вернет количество строк таблицы «Staff». Оно будет равно 6.

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

    SELECT avg(Wages) FROM Staff WHERE Post = Manager;

    В результате получим 40000.

    SQL-выражения даты и времени

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

    SELECT CURRENT_TIMESTAMP;

    Этот запрос вернет текущие дату и время. CURRENT_TIMESTAMP — это и есть SQL-выражение даты и времени, однако это также является и функцией одновременно.

    Чтобы вернуть только текущее время, нужно использовать CURRENT_TIME, а чтобы получить только текущую дату — CURRENT_DATE.

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

    Результат SELECT CURRENT_TIMESTAMP для примеров равен 2023-02-03 08:25:39.

    ФункцияАргумент функцииЧто возвращаетПример
    DAYOFWEEK()DateДень неделиSELECT DAYOFWEEK(CURRENT_TIMESTAMP); Result: 6 (Пятница)
    DAYOFMONTH()День месяцаSELECT DAYOFMONTH(CURRENT_TIMESTAMP); Result: 3
    DAYOFYEAR()День годаSELECT DAYOFYEAR(CURRENT_TIMESTAMP); Result: 34
    LAST_DAY()Последний день месяцаSELECT LAST_DAY(CURRENT_TIMESTAMP); Result: 2023-02-28
    MONTH()МесяцSELECT MONTH(CURRENT_TIMESTAMP); Result: 2
    YEAR()ГодSELECT YEAR(CURRENT_TIMESTAMP); Result: 2023
    HOUR()TimeЧасSELECT HOUR(CURRENT_TIMESTAMP); Result: 8
    MINUTE()МинутыSELECT MINUTE(CURRENT_TIMESTAMP); Result: 25
    SECOND()СекундыSELECT SECOND(CURRENT_TIMESTAMP); Result: 39

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

    ФункцияОписаниеПримеры
    DATE_ADD(дата, временной интервал)Предназначена для сложения даты и некоторого временного промежуткаSELECT DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 1 MONTH); Result: 2023-03-03 08:25:39
    DATE_SUB(дата, временной интервал)Предназначена для вычитания из даты некоторого временного промежуткаSELECT DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1 MONTH); Result: 2023-01-03 08:25:39
    DATEDIFF(дата1, дата2)Рассчитывает разницу в днях между двумя указанными датамиSELECT DATEDIFF(CURRENT_DATE, '2022-02-01'); Result: 367
    TO_DAYS(дата)Преобразует дату в количество дней, начиная с нулевого годаSELECT TO_DAYS(CURRENT_TIMESTAMP); Result: 738919
    TIME_TO_SEC(время)Рассчитывает количество секунд в указанном времениSELECT TIME_TO_SEC(CURRENT_TIME); Result: 30 339

    Предназначена для сложения даты и некоторого временного промежутка

    Result: 2023-03-03 08:25:39

    Предназначена для вычитания из даты некоторого временного промежутка

    Result: 2023-01-03 08:25:39

    Рассчитывает разницу в днях между двумя указанными датами

    Преобразует дату в количество дней, начиная с нулевого года

    Рассчитывает количество секунд в указанном времени

    • SQL-выражения — это некий набор значений, операторов, имен столбцов, функций или других составляющих, имеющихся в SQL.
    • Существует 3 основных типа SQL-выражений: логические, числовые, а также те, что относятся к дате и времени.
    • Логические выражения в SQL используются для извлечения необходимых данных, основанных на условии, которое зачастую указывается в операторе WHERE. Синтаксис:
    SELECT наименование_столбца1, наименование_столбца2, наименование_столбца3, …, наименование_столбцаN FROM наименование_таблицы WHERE логическое_выражение;
    • Также с WHERE могут использоваться операторы GROUP BY, HAVING и ORDER BY. Они предназначены для фильтрации, сортировки и ограничений получаемых в запросе строк.
    • Числовые выражения в SQL применяются для реализации необходимых математических операций. Синтаксис:
    SELECT числовое_выражение FROM наименование_таблицы [WHERE условие];
    • Последний рассмотренный тип SQL-выражений — выражения, предназначенные для работы с текущими временем и датой.

    Разверните базу данных в облаке

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


    Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490₽

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190₽

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация или чистый VPS без панели?

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны