Выражения
Выражение (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)— форматирует время