Поиск

Числовые функции

Арифметические операции
Доступны обычные арифметические операции. Помните, что для операций -, + и * результат вычисляется с точностью 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.
mysql> SELECT 5 DIV 2; -> 2
Операция 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