Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

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

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

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

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

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

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

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

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

    

В качестве примера возьмем таблицу «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

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

    

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

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

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-запросе:

    

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

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 и другие. Кроме перечисленных агрегатных функций возможно использовать операторы сложения, вычитания, деления или умножения.

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

    

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

    

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

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

    

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

DBaaS

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

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

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

Пример:

    

Этот запрос вернет текущие дату и время. 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. Синтаксис:
    
  • Также с WHERE могут использоваться операторы GROUP BY, HAVING и ORDER BY. Они предназначены для фильтрации, сортировки и ограничений получаемых в запросе строк.
  • Числовые выражения в SQL применяются для реализации необходимых математических операций. Синтаксис:
    
  • Последний рассмотренный тип SQL-выражений — выражения, предназначенные для работы с текущими временем и датой.

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

Cloud DB 1/1/8

447 ₽/мес

Процессор
1 x 3.3 ГГц
Память
1 ГБ
Диск NVMe
8 ГБ
Приватный IP
Есть
Резервные копии
Есть
Cloud DB 1/2/20

711 ₽/мес

Процессор
1 x 3.3 ГГц
Память
2 ГБ
Диск NVMe
20 ГБ
Приватный IP
Есть
Резервные копии
Есть
Таблица тарифов
Сравнение тарифов
Cloud DB 1/1/8
496
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 ГГц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 ГГц
Память1 ГБ2 ГБ2 ГБ4 ГБ8 ГБ12 ГБ12 ГБ16 ГБ
Диск NVMe8 ГБ20 ГБ30 ГБ40 ГБ80 ГБ120 ГБ180 ГБ220 ГБ
Приватный IPЕстьЕстьЕстьЕстьЕстьЕстьЕстьЕсть
Резервные копииЕстьЕстьЕстьЕстьЕстьЕстьЕстьЕсть

Заключение

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

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

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

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