Разверните OpenClaw в облаке в один клик
Вход/ Регистрация

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

2584
7 минут чтения
Средний рейтинг статьи: 5

SQL-выражения — это некий набор значений, операторов, имен столбцов, функций или других составляющих, имеющихся в SQL. Они представляют собой формулы и предназначены для получения некоторого набора данных.

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

Логические SQL-выражения

Логические выражения в 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 – заработная плата сотрудника.

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

ID

FirstName

SecondName

Post

Wages

1

Alexander

Avdeev

Manager

45000

2

Anatoliy

Andreev

Junior QA specialist

30000

3

Victoria

Davydova

Manager

35000

4

Igor

Konchalovskiy

Main Developer

90000

5

Alexanderа

Medvedeva

Senior QA specialist

65000

6

Andrey

Grushevskiy

Analyst

40000

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

    
SELECT * FROM Staff WHERE Post = Manager;

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

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

ID

FirstName

SecondName

Post

Wages

1

Alexander

Avdeev

Manager

45000

3

Victoria

Davydova

Manager

35000

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

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

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

    
SELECT * FROM Staff  WHERE Wages > 40000 and Wages < 70000 ORDER BY Wages DESC;

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

ID

FirstName

SecondName

Post

Wages

5

Alexanderа

Medvedeva

Senior QA specialist

65000

1

Alexander

Avdeev

Manager

45000

Числовые SQL-выражения

Числовые выражения в 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.

DBaaS

Запустите свою базу данных в облаке и
оптимизируйте процессы DevOps и CI/CD.

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

Что запомнить

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

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

Таблица тарифов
Сравнение тарифов
Cloud DB 1/2/20 —
790 ₽/мес
Cloud DB 2/2/30 —
1160 ₽/мес
Cloud DB 2/4/40 —
1580 ₽/мес
Cloud DB 4/8/80 —
3160 ₽/мес
Cloud DB 4/12/120 —
4240 ₽/мес
Cloud DB 6/12/180 —
5460 ₽/мес
Cloud DB 8/16/220 —
7040 ₽/мес
Процессор1 x 3.3 ГГц2 x 3.3 ГГц2 x 3.3 ГГц4 x 3.3 ГГц4 x 3.3 ГГц6 x 3.3 ГГц8 x 3.3 ГГц
Память2 ГБ2 ГБ4 ГБ8 ГБ12 ГБ12 ГБ16 ГБ
Диск NVMe20 ГБ30 ГБ40 ГБ80 ГБ120 ГБ180 ГБ220 ГБ
Резервные копииЕстьЕстьЕстьЕстьЕстьЕстьЕсть
Приватный IPЕстьЕстьЕстьЕстьЕстьЕстьЕсть
PostgreSQL 18
Выбрать
Фиксированный
Произвольный
CPU
RAM
Диск
Стоимость
1 x 3.3 ГГц
2 ГБ
20 ГБ
790 ₽/мес
2 x 3.3 ГГц
2 ГБ
30 ГБ
1 160 ₽/мес
2 x 3.3 ГГц
4 ГБ
40 ГБ
1 580 ₽/мес
Раз в день
0 ₽/месяц
Отключить
Не рекомендуется

Заключение

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

2584
7 минут чтения
Средний рейтинг статьи: 5

Читайте также

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server
Пока нет комментариев