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