Математические функции общего назначения
Очень часто требуется использовать в процедурах генератор случайных чисел. Для подобных задач в MySQL предусмотрены функции RAND() и RAND(N). Функция RAND() возвращает случайное число в диапазоне от 0 до 1.
SELECT RAND();
Результат1 : 0.04547451068225737.
Результат2: 0.2076478397544919.
Результат3: 0.9018156974593323
Функция RAND(N) при генерации случайного числа в качестве начального значения использует число N. Таким образом, при каждой генерации с одним и тем же N получается одно и то же случайное число.
SELECT RAND(10);
Результат1: 0.6570515219653505.
Результат2: 0.6570515219653505.
Результат3: 0.6570515219653505.
Функция ABS(x) возвращает модуль числа х.
SELECT ABS(-60);
Результат: 60.
SELECT ABS(120-100);
Результат: 20.
Функция SIGN(X) возвращает -1, если х отрицательно, 0, если х равно 0, 1, если х положительно. Используется для определения знака числа.
В таблице tovar имеется два поля:
plan – запланированное к производству количество товара, fact – фактически произведенное количество.
Нужно вывести напротив каждого товара либо «план выполнен» , либо «дефицит товара», либо «план перевыполнен» .
SELECT tovar_name, CASE SIGN(plan-fact)
WHEN -1 THEN «дефицит товара»
WHEN 0 THEN «план выполнен»
ELSE «план перевыполнен»
END
FROM tovar;
Функция MOD (x,y) возвращает остаток от деления x на у. Кроме функции MOD в mysql тот же результат можно получить используя оператор %.
SELECT 32/8; или SELECT 32 % 8;
Результат: 0.
SELECT 33/8; SELECT 33 % 8;
Результат 1.
Функция FLOOR(x) возвращает наибольшее целое число, которое меньше или равно x.
SELECT FLOOR(23.6);
Результат: 23.
SELECT FLOOR(-23.6);
Результат: -24.
ФункцияCEILING(X) возвращает наименьшее целое число, которое больше или равно X:
SELECT CEILING (23.6);
Результат: 24.
SELECT CEILING(-23.6);
Результат: -23.
Функция TRUNCATE(x,n) отсекает десятичные знаки числа так, чтобы их оставалось ровно n.
SELECT TRUNCATE(10.535364,2);
Результат: 10.53.
Следует понимать, что функции FLOOR и CELLING и TRUNCATE не дают округления!
Округление
Для округления чисел до ближайшего целого используется функция ROUND(x).
SELECT ROUND(23.6);
Результат: 24.
SELECT ROUND (-23.6);
Результат: -24.
Также можно воспользоваться функцией ROUND (x,n), которая округляет число х до некоторого числа, имеющего n десятичных знаков.
SELECT ROUND(10.535364,2);
Результат: 10.54.
SELECT ROUND(-1.5364,3);
Результат: -1.536.
Cтепени и логарифмы
Функции POW(x,y) и POWER(x,y) возвращают значение х в степени y.
SELECT POW(2,3);
Результат: 8.
Функция SQRT(x) возвращает неотрицательный квадратный корень числа x.
SELECT SQRT(9);
Результат: 3.
SELECT SQRT(-9);
Результат: NULL.
Функция EXP() возвращает значение числа e в степени x.
SELECT EXP(2);
Результат: 7.389056.
Функция LOG(x) возвращает натуральный логарифм числа x.
SELECT LOG(10);
Результат: 2.302585.
SELECT LOG (-10);
Результат: NULL.
Функция LOG10(x) возвращает десятичный логарифм числа x.
SELECT LOG10(10);
Результат: 1.
SELECT LOG10(100);
Результат: 2.
Тригономертия
Функция PI() возвращает число Pi с точностью до 5 знаков. Тригонометрические функции вычисляются при помощи следующих функций MySQL:
- COS(x) – косинус x, где х задан в радианах;
- SIN(x) – синус x, , где х задан в радианах;
- TAN(x) – тангенс x, где х задан в радианах;
- ACOS(x) – арккосинус x, где х задан в диапазоне [-1;1] ;
- ASIN(x) – арксинус x, где х задан в диапазоне [-1;1];
- ATAN(x) – арксинус x;
- COT(x) – котангенс x.
Для преобразования радианов в градусы используется функция DEGREES(x).
SELECT DEGREES(PI());
Результат: 180.0.
Для преобразования градусов в радианы используется функция RADIANS(x).
SELECT RADIANS(180);
Результат: 3.1415926.