Перейти к содержанию

Выражения

Выражение (expression) — это комбинация значений, операторов и функций для вычисления результата. Выражения используются для извлечения из базы данных определенных данных, похожи на формулы в языке запросов.

Общий синтаксис

SELECT col1, col2, ...colN
FROM tableName
WHERE [condition|expression];

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


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

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

Пример:

SELECT * FROM users WHERE status = 'active';

Таблица: users

userId userName age city status
1 Igor 25 Moscow active
2 Vika 26 Ekaterinburg inactive
3 Elena 27 Ekaterinburg active
4 Oleg 28 Moscow inactive

Результат:

userId userName age city status
1 Igor 25 Moscow active
3 Elena 27 Ekaterinburg active

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

Применяются для выполнения арифметических операций.

SELECT numericalExpression as operationName
[FROM tableName
WHERE condition];

Пример:

SELECT (10 + 5) AS addition;

Результат:

addition
15

Агрегатные функции

  • COUNT() — подсчитывает количество записей
  • SUM() — вычисляет сумму значений
  • AVG() — возвращает среднее значение
  • MIN() — наименьшее значение
  • MAX() — наибольшее значение

Пример:

SELECT COUNT(*) AS records FROM users;

Результат:

records
4

Выражения для работы со строками

Также существует несколько встроенных функций для работы со строками:

  • CONCAT — объединяет строки
  • LENGTH — возвращает количество символов в строке
  • TRIM — удаляет пробелы в начале и конце строки
  • SUBSTRING — извлекает подстроку из строки
  • REPLACE — заменяет часть строки
  • LOWER / UPPER — меняет регистр символов (нижний / верхний)

Выражения для работы с числами

  • ROUND — округляет число.
  • TRUNCATE — обрезает дробное число до указанного количества знаков после запятой
  • CEILING — возвращает наименьшее целое число, которое больше или равно текущему значению
  • FLOOR — возвращает наибольшее целое число, которое меньше или равно текущему значению
  • POWER — возводит число в указанную степень
  • SQRT — возвращает квадратный корень числа
  • RAND — генерирует случайное число с плавающей точкой в диапазоне от 0 до 1

Выражения для работы с датами

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

Пример:

SELECT CURRENT_TIMESTAMP;

Результат:

Current_Timestamp
2021-06-20 12:45:00

Основные функции

  • CURRENT_TIMESTAMP / NOW() — текущая дата и время
  • CURDATE() / CURRENT_DATE — возвращает текущую дату
  • CURTIME() / CURRENT_TIME — возвращает текущее время и т.д.

Функции для разбора даты и времени

  • DAYOFMONTH(date) — возвращает день месяца в виде числа
  • DAYOFWEEK(date) — возвращает день недели в виде числа
  • DAYOFYEAR(date) — возвращает номер дня в году
  • MONTH(date) — возвращает месяц
  • YEAR(date) — возвращает год
  • LAST_DAY(date) — возвращает последний день месяца в виде даты
  • HOUR(time) — возвращает час
  • MINUTE(time) — возвращает минуты
  • SECOND(time) — возвращает секунды и др.

Функции для манипуляции датами

  • DATE_ADD(date, interval) — прибавляет интервал ко дню
  • DATE_SUB(date, interval) — вычитает интервал из дня
  • DATEDIFF(date1, date2) — разница в днях между двумя датами
  • TO_DAYS(date) — количество дней с начала года.
  • TIME_TO_SEC(time) — возвращает количество секунд с полуночи и др.

Форматирование даты и времени

  • DATE_FORMAT(date, format) — форматирует дату
  • TIME_FORMAT(time, format) — форматирует время