Поиск
Числовые функции
Арифметические операции
Доступны обычные арифметические операции. Помните, что для операций -, + и * результат вычисляется с точностью BIGINT (64-разрядной), если оба аргумента - целые. Если один из аргументов - беззнаковое целое, а другой - также целое, результатом будет беззнаковое целое. См. раздел 5.7.- +. Сложение:
mysql> SELECT 3+5; -> 8
- -. Вычитание:
mysql> SELECT 3-5; -> -2
- -. Унарный минус, меняет знак аргумента:
mysql> SELECT - 2; -> -2
Помните, что если операция используется для BIGINT, возвращаемое значение будет иметь тип BIGINT. Это значит, что вы должны избегать применения операции "-" с целыми, которые могут принимать значение -263.
- *. Умножение:
mysql> SELECT 3*5; -> 15 SELECT 18014398509481984*18014398509481984.0;
-> 324518553658426726783156020576256.0
mysql> SELECT 18014398509481984*18014398509481984;
-> 0
Результат последнего выражения неправильный, потому что результат умножения превысил диапазон допустимых значений 64-разрядных BIGINT.
- /. Деление:
mysql> SELECT 3/5; -> 0.60
Деление на ноль дает в результате NULL:
mysql> SELECT 102/(1-1);
-> NULL
Деление выполняется с использованием арифметики BIGINT, только если это делается в контексте, где результат преобразуется с целое.
- Целочисленное деление. Похоже на FLOOR(), но безопасно в отношении зна
чений BIGINT.
Операция DIV появилась в версии MySQL 4.1.0.
Математические функции
Все математические функции в случае ошибки возвращают NULL.- ABS (X). Возвращает абсолютное значение X.
mysql> SELECT ABS(2);
-> 2 mysql> SELECT ABS(-32);
-> 32
Безопасна для применения со значениями BIGINT.
- ACOS(X). Возвращает арккосинус X, то есть значение, косинус которого равен X.
Если значение Xлежит вне диапазона от-1 до 1, возвращается NULL.
mysql> SELECT ACOS(l);
-> 0.000000
mysql> SELECT ACOS(1.0001);
-> NULL
mysql> SELECT ACOS(0);
-> 1.570796
- ASIN (X). Возвращает арксинус Х, то есть значение, синус которого равен X. Если
значение Xлежит вне диапазона от -1 до 1, возвращается NULL.
mysql> SELECT ASIN(0.2);
-> 0.201358
mysql> SELECT ASIN('foo');
- ATAN (X). Возвращает арктангенс X, то есть значение, тангенс которого равен X.
mysql> SELECT ATAN(2);
-> 1.107149 mysql> SELECT ATAN(-2);
-> -1.107149
- ATAN (X, Y)
ATAN2 (X, Y)
Возвращает арктангенс двух переменных X и У. Это подобно вычислению арктангенса х/У, за исключением того, что знаки обоих аргументов используются для определения квадранта результата.
mysql> SELECT ATAN(-2,2);
-> -0.785398 mysql> SELECT ATAN2 (PI (), 0);
-> 1.570796
- CEILING(X)
CEIL (X)
Возвращает наименьшее целое значение, которое не меньше X.
mysql> SELECT CEILING(1.23);
-> 2 raysql> SELECT CEIL(-1.23) ;
-> -1
Следует отметить, что возвращаемое значение преобразуется к типу BIGINT. Псевдоним CEIL () был добавлен в MySQL 4.O.6.
- COS (X). Возвращает косинус X, где Xзадан в радианах.
mysql> SELECT COS(PI()); -> -1.000000
- СОТ (X). Возвращает котангенс X.
mysql> SELECT COT(12);
-> -1.57267341 mysql> SELECT COT(0);
-> NULL
- CRC32{выражение). Вычисляет проверочное значение в циклическом избыточном коде и возвращает 32-разрядное целое. Результат равен NULL, если передается аргументNULL. Ожидается, что аргумент будет строкой, и будет рассматриваться в качестве таковой в противном случае.
mysql> SELECT CRC32('MySQL');
-> 32593Э7556
CRC32() была добавлена в MySQL 4.I.O.
- DEGREES(X)
Возвращает аргумент X, преобразованный из радианов в градусы.
mysql> SELECT DEGREES (PI ());
- ЕХР (Х). Возвращает значение числа е (основания натурального логарифма), возведенное в степень X.
mysql> SELECT EXP(2);
-> 7.389056
mysql> SELECT EXP(-2);
-> 0.135335
- FLOOR (X) . Возвращает максимальное целое число, не большее X.
mysql> SELECT FLOOR(1.23);
-> 1 mysql> SELECT FLOOR(-1.23);
-> -2
Следует отметить, что возвращаемое значение преобразуется к типу BIGINT.
- LN (X). Возвращает натуральный логарифм X.
mysql> SELECT LN(2);
-> 0.693147 mysql> SELECT LN(-2);
-> NULL
Функция была добавлена в MySQL 4.0.3. Является синонимом LOG (X). a LOG(X) LOG(B,X) При вызове с одним параметром возвращает натуральный логарифм X.
mysql> SELECT LOG (2);
-> 0.693147 mysql> SELECT LOG(-2);
-> NULL
При вызове с двумя параметрами возвращает логарифм X по основанию В.
mysql> SELECT LOG(2,65536);
-> 16.000000 mysql> SELECT LOG(1,100);
-> NULL
Вариант функции с аргументом основания появился в MySQL 4.O.3. LOG(В,X) эквивалентна LOG (В)/ LOG(X).
- LOG2 (X). Возвращает логарифм Xпо основанию 2.
mysql> SELECT LOG2(65536);
-> 16.000000
mysql> SELECT LOG2(-100); -> NULL
Функция LOG2 () удобна для того, чтобы определить, сколько бит потребуется для сохранения числа. Эта функция была добавлена в MySQL 4.O.3. В более ранних версиях вместо нее можно использовать LOG(X) /LOG(2).
- LOG10 (X). Возвращает логарифм Xпо основанию 10.
mysql> SELECT LOG10(2);
-> 0.301030 raysql> SELECT LOG10(100);
-> 2.000000 - MOD(N,M)
N % M
N MOD M
Модуль (подобен операции % в языке С). Возвращает остаток от деления N Ha M.
mysql> SELECT MOD(234, 10);
-> 4 mysql> SELECT 253 % 7;
-> 1 mysql> SELECT MOD (29,9) ;
-> 2 mysql> SELECT 29 MOD 9;
-> 2
Эта функция безопасна для применения с типом BIGINT. Синтаксис N MOD мрабо-тает только в версии MySQL 4.1.
- PI (). Возвращает значение числа я. По умолчанию отображается пять знаков после десятичной запятой, но внутренне MySQL использует полное представление действительного числа двойной точности.
mysql> SELECT PI () ;
-> 3.141593
mysql> SELECT PI()+0.000000000000000000;
-> 3.141592653589793116
- POW(X,Y)
POWER (X,Y)
Возвращает значение X, возведенное в степень Y.
mysql> SELECT POW(2,2);
-> 4.000000
mysql> SELECT POW(2,-2);
-> 0.250000
- RADIANS(X)
Возвращает аргумент Х, преобразованный из градусов в радианы.
mysql> SELECT RADIANS(90); -> 1.570796
- RANDO
RANDW
Возвращает случайное число двойной точности в диапазоне от 0 до 1.0. Если указан целочисленный аргумент N, он служит начальным числом для генератора случайных чисел (генерируя повторяющуюся последовательность).
mysql> SELECT RAND();
-> 0.9233482386203