СУБД MySQL предоставляет широкий набор встроенных функций, которые можно использовать для преобразования данных. Мы рассмотрим наиболее часто используемые функции. За полным списком функций следует обратиться к официальной доквментации.
Примечание. Отличительной чертой MySQL является то, что при использовании функций пробелы между именем функции и круглыми скобками недопустимы. Так, написание NOW()
корректно, NOW()
— нет. СУБД MySQL можно заставить игнорировать пробелы между именем функции и круглыми скобками, если запустить сервер с параметром --sql-mode=IGNORE-SPACE
или поместить в секцию [mysqld
] директиву sql-mode=IGNORE-SPACE
.
Математические функции
Математические функции предназначены для выполнения разнообразных математических расчетов. В таблице представлен список математических функций, доступных в СУБД MySQL.
Функция | Описание |
---|---|
ABC(X) | Возвращает абсолютное значение аргумента Х |
ACOS(X) | Возвращает арккосинус числа Х или NULL, если значение Х выходит из диапазона от -1 до 1 |
ASIN(X) | Возвращает арксинус числа Х или NULL, если значение выходит из диапазона от -1 до 1 |
ATAN(X) | Возвращает арктангес числа Х |
ATAN(X, Y) ATAN2(X, Y) |
Возвращает арктангес частного Х/У, функции аналогичны ATAN(X, Y) |
CEILING(X) CEIL(X) |
Функция принимает дробное число Х и возвращает наименьшее целое, не меньше Х |
COALESCE(val, . . .) | Возвращает первый элемент из списка, который не равен NULL |
COS(X) | Возвращает косинус угла Х, заданного в радианах |
COT(X) | Возвращает котангес угла Х, заданного в радианах |
CRC32(str) | Возвращает значение кода циклической проверки избыточности строки str — 32-битное значение в диапазоне от 0 до 232 -1. Если в качестве аргумента функции передано значение NULL, функция возвращает NULL |
DEGREES(X) | Возвращает значение угла Х, преобразованное из радиан в градусы |
GREATEST(val, . . .) | Возвращает максимальное значение из списка |
EXP(X) | Возвращает значение степени числа Х: еx, где е — основание натурального логарифма |
FLOOR(X) | Принимает дробное число Х и возвращает максимальное значение, не больше чем Х |
INTERVAL(N, N1, N2 . . .) | Возвращает 0, если N<N1, и 1, если N<N2, и т.д., т.е возвращается позиция, где происходит нарушение монотонного убывания значений списка. Все аргументы трактуются как целые числа |
LEAST(val, . . .) | Возвращает минимальное значение из списка |
LOG(X), LN(X) | Возвращает натуральный логарифм (с основанием е) числа Х |
LOG(B, X) | Возвращает логарифм числа Х по основанию В |
LOG2(X) | Возвращает логарифм числа Х по основанию 2 |
LOG10(X) | Возвращает логарифм числа Х по основанию 10 |
MOD(M, N) M % N, M MOD N |
Возвращает остаток от деления М на N |
PI() | Возвращает значение числа |
POWER(X, Y), POW(X, Y) |
Возвращает значение числа Х, возведенного в степень У, — Х y |
RADIANS(X) | Возвращает значение угла Х, преобразованное из градусов в радианы |
RAND() | Возвращает случайное значение с плавающей точкой в диапазоне от 0,0 до 1,0. Каждый раз генерируется одна и таже последовательность случайных чисел |
RAND(N) | Возвращает случайное значение с плавающей точкой в диапазоне от 0,0 до 1,0. Генератор случайных чисел инициируется числом N |
ROUND(X) | Возвращает округленное до ближайшего целого значения чмсла Х |
ROUND(X, D) | Возвращает значение числа Х, округленного до D знаков после запятой |
SIGN(X) | Позволяет определить знак числа Х и возвращает -1,0 или 1, если Х отрицательно, равно 0 или положительно, соответственно |
SIN(X) | Возвращает синус угла Х, заданного в радианах |
SQPT(X) | Возвращает квадратный корень числа Х |
TAN(X) | Возвращает тангес угла Х, заданного в радианах |
TRUNCATE(X, D) | Возвращает число Х с дробной частью, имеющей D знаков после запятой. Если количество знаков после запятой в числе Х больше D, лишние разряды усекаются, если меньше, то в конец числа добавляются нули |
Вычисление площади треугольников
Пусть имеется таблица trianle
, которая состоит из трех полей, содержащих величины угла (angle
) и длины двух прилежащих сторон а
и b
.
Дамп таблицы trianle
Вычислим площади треугольников, параметры которых содержатся в таблице trianle
по формуле:
S=a x b x sin(angle)
SQL-запрос, вычисляющий площади треугольников по приведенной выше формуле, может выглядеть так, как это показано ниже.
Вычисление площади треугольников
Как видно из листинга, прежде чем воспользоваться функцией синуса SIN()
необходимо конвертировать угол из градусов в радианы при помощи функции RADIANS()
.
Округление результатов вычисления
Как видно из предыдущего примера, результат вычисления имеет 13 знаков после запятой, что может быть не очень удобным для восприятия. Рассмотрим пример, где результат вычисления округляется ло третьего знака после запятой при помощи функции ROUND()
.
Функция ROUND()
осуществляет математическое округление до ближайшего целого числа.
Функция ROUND()
— не единственная функция управления дробными числами. Функция CEILING(X
) принимает дробное число Х
и возвращает минимальное целое, не меньше чем Х
.
Функция CEILING(X)
не производит округления, как может показаться на первый взгляд. Она возвращает первое целое число, которое встречается справа от значения аргумента.
Использование функции CEILING(X)
Функция FLOOR(X)
принимает дробное число Х и возвращает максимальное целое значение, не больше чем Х
. Эта функция сходна по действию с функцией CEILING(X)
, но сдвиг происходит в обратную сторону.
Пример использования функции FLOOR(X)
Последней функцией, управляющей дробными числами, является функция TRUNCATE(X, D)
, которая возвращает число Х
с дробной частью, имеющей D
знаков после запятой. Если количество знаков после запятой в числе Х
больше D
, лишние разряды усекаются , если меньше, то в конец числа добавляются нули.
Использование функции TRUNCATE()
Комментарии(0)
Для добавления комментариев надо войти в систему и авторизоватьсяКомментирование статей доступно только для зарегистрированных пользователей:Зарегистрироваться