П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 174912 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 71817 раз(а).

Учебник HTML.
Просмотров 72001 раз(а).

Руководство по PHP5.
Просмотров 42607 раз(а).

Хостинг через призму DNS.
Просмотров 49045 раз(а).

Подборка текстов стандартных документов.
Просмотров 43025 раз(а).

Учебник PHP - Самоучитель
Просмотров 49370 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 49599 раз(а).

Внешние атаки...
Просмотров 40152 раз(а).

Учебник PHP.
Просмотров 35182 раз(а).

SSI в примерах.
Просмотров 26492 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь




Глава 6. Справочник по языку MySQL
Пред.     След.

6.3. Функции, используемые в операторах SELECT и WHERE
6.3.3. Числовые функции

6.3.3.2. Математические функции

Все математические функции в случае ошибки возвращают NULL.

  • -

    Унарный минус. Изменяет знак аргумента:

    mysql> SELECT - 2;
    -> -2
    

    Необходимо учитывать, что если этот оператор используется с данными типа BIGINT, возвращаемое значение также будет иметь тип BIGINT! Это означает, что следует избегать использования оператора для целых чисел, которые могут иметь величину -2^63!

  • ABS(X)

    Возвращает абсолютное значение величины X:

    mysql> SELECT ABS(2);
    -> 2
    mysql> SELECT ABS(-32);
    -> 32
    

    Эту функцию можно уверенно применять для величин типа BIGINT.

  • SIGN(X)

    Возвращает знак аргумента в виде -1, 0 или 1, в зависимости от того, является ли X отрицательным, нулем или положительным:

    mysql> SELECT SIGN(-32);
    -> -1
    
    mysql> SELECT SIGN(0);
    -> 0
    
    mysql> SELECT SIGN(234);
    -> 1
    
  • MOD(N,M), %

    Значение по модулю (подобно оператору % в C). Возвращает остаток от деления N на M:

    mysql> SELECT MOD(234, 10);
    -> 4
    
    mysql> SELECT 253 % 7;
    -> 1
    
    mysql> SELECT MOD(29,9);
    -> 2
    

    Эту функцию можно уверенно применять для величин типа BIGINT.

  • FLOOR(X)

    Возвращает наибольшее целое число, не превышающее X:

    mysql> SELECT FLOOR(1.23);
    -> 1
    
    mysql> SELECT FLOOR(-1.23);
    -> -2
    

    Следует учитывать, что возвращаемая величина преобразуется в BIGINT!

  • CEILING(X)

    Возвращает наименьшее целое число, не меньшее, чем X:

    mysql> SELECT CEILING(1.23);
    -> 2
    
    mysql> SELECT CEILING(-1.23);
    -> -1
    

    Следует учитывать, что возвращаемая величина преобразуется в BIGINT!

  • ROUND(X)

    Возвращает аргумент X, округленный до ближайшего целого числа:

    mysql> SELECT ROUND(-1.23);
    -> -1
    
    mysql> SELECT ROUND(-1.58);
    -> -2
    
    mysql> SELECT ROUND(1.58);
    -> 2
    

    Следует учитывать, что поведение функции ROUND() при значении аргумента, равном середине между двумя целыми числами, зависит от конкретной реализации библиотеки C. Округление может выполняться: к ближайшему четному числу, всегда к ближайшему большему, всегда к ближайшему меньшему, всегда быть направленным к нулю. Чтобы округление всегда происходило только в одном направлении, необходимо использовать вместо данной хорошо определенные функции, такие как TRUNCATE() или FLOOR().

  • ROUND(X,D)

    Возвращает аргумент X, округленный до числа с D десятичными знаками. Если D равно 0, результат будет представлен без десятичного знака или дробной части:

    mysql> SELECT ROUND(1.298, 1);
    -> 1.3
    
    mysql> SELECT ROUND(1.298, 0);
    -> 1
    
  • EXP(X)

    Возвращает значение e (основа натуральных логарифмов), возведенное в степень X:

    mysql> SELECT EXP(2);
    -> 7.389056
    
    mysql> SELECT EXP(-2);
    -> 0.135335
    
  • LN(X)

    Возвращает натуральный логарифм числа X:

    mysql> SELECT LN(2);
    -> 0.693147
    mysql> SELECT LN(-2);
    -> NULL
    

    Эта функция появилась в MySQL 4.0.3. Это синоним LOG(X).

  • LOG(B, X)

    Если вызывается с одним параметром, возвращает натуральный логарифм числа X:

    mysql> SELECT LOG(2);
    -> 0.693147
    
    mysql> SELECT LOG(-2);
    -> NULL
    

    Если вызывается с двумя параметрами, функция возвращает логарифм числа X по базе B:

    mysql> SELECT LOG(2,65536);
    -> 16.000000
    mysql> SELECT LOG(1,100);
    -> NULL
    

    Опция указания базы логарифма появилась в MySQL 4.0.3. LOG(B,X) эквалиентно LOG(X)/LOG(B).

  • LOG2(X)

    Возвращает логарифм числа X по базе 2:

    mysql> SELECT LOG2(65536);
    -> 16.000000
    mysql> SELECT LOG2(-100);
    -> NULL
    

    Функция LOG2() полезна с тем, чтобы узнать, сколько бит число потребует для хранения. Эта функция добавлена в MySQL 4.0.3. В более старых версиях вызывайте вместо нее: LOG(X)/LOG(2)

  • LOG10(X)

    Возвращает десятичный логарифм числа X:

    mysql> SELECT LOG10(2);
    -> 0.301030
    
    mysql> SELECT LOG10(100);
    -> 2.000000
    
    mysql> SELECT LOG10(-100);
    -> NULL
    
  • POW(X,Y), POWER(X,Y)

    Возвращает значение аргумента X, возведенное в степень Y:

    mysql> SELECT POW(2,2);
    -> 4.000000
    
    mysql> SELECT POW(2,-2);
    -> 0.250000
    
  • SQRT(X)

    Возвращает неотрицательный квадратный корень числа X:

    mysql> SELECT SQRT(4);
    -> 2.000000
    
    mysql> SELECT SQRT(20);
    -> 4.472136
    
  • PI()

    Возвращает значение числа "пи". По умолчанию представлено 5 десятичных знаков, но в MySQL для представления числа "пи" при внутренних вычислениях используется полная двойная точность.

    mysql> SELECT PI();
    -> 3.141593
    
    mysql> SELECT PI()+0.000000000000000000;
    -> 3.141592653589793116
    
  • COS(X)

    Возвращает косинус числа X, где X задается в радианах:

    mysql> SELECT COS(PI());
    -> -1.000000
    
  • SIN(X)

    Возвращает синус числа X, где X задается в радианах:

    mysql> SELECT SIN(PI());
    -> 0.000000
    
  • TAN(X)

    Возвращает тангенс числа X, где X задается в радианах:

    mysql> SELECT TAN(PI()+1);
    -> 1.557408
    
  • ACOS(X)

    Возвращает арккосинус числа X, т.е. величину, косинус которой равен X. Если X не находится в диапазоне от -1 до 1, возвращает NULL:

    mysql> SELECT ACOS(1);
    -> 0.000000
    
    mysql> SELECT ACOS(1.0001);
    -> NULL
    
    mysql> SELECT ACOS(0);
    -> 1.570796
    
  • ASIN(X)

    Возвращает арксинус числа X, т.е. величину, синус которой равен X. Если X не находится в диапазоне от -1 до 1, возвращает NULL:

    mysql> SELECT ASIN(0.2);
    -> 0.201358
    
    mysql> SELECT ASIN('foo');
    -> 0.000000
    
  • ATAN(X)

    Возвращает арктангенс числа X, т.е. величину, тангенс которой равен X:

    mysql> SELECT ATAN(2);
    -> 1.107149
    
    mysql> SELECT ATAN(-2);
    -> -1.107149
    
  • ATAN(Y,X), ATAN2(Y,X)

    Возвращает арктангенс двух переменных X и Y. Вычисление производится так же, как и вычисление арктангенса Y / X, за исключением того, что знаки обоих аргументов используются для определения квадранта результата:

    mysql> SELECT ATAN(-2,2);
    -> -0.785398
    
    mysql> SELECT ATAN2(PI(),0);
    -> 1.570796
    
  • COT(X)

    Возвращает котангенс числа X:

    mysql> SELECT COT(12);
    -> -1.57267341
    
    mysql> SELECT COT(0);
    -> NULL
    
  • RAND(), RAND(N)

    Возвращает случайную величину с плавающей точкой в диапазоне от 0 до 1,0. Если целочисленный аргумент N указан, то он используется как начальное значение этой величины:

    mysql> SELECT RAND();
    -> 0.9233482386203
    
    mysql> SELECT RAND(20);
    -> 0.15888261251047
    
    mysql> SELECT RAND(20);
    -> 0.15888261251047
    
    mysql> SELECT RAND();
    -> 0.63553050033332
    
    mysql> SELECT RAND();
    -> 0.70100469486881
    

    В выражениях вида ORDER BY не следует использовать столбец с величинами RAND(), поскольку применение оператора ORDER BY приведет к многократным вычислениям в этом столбце. В версии MySQL 3.23 можно, однако, выполнить следующий оператор: SELECT * FROM table_name ORDER BY RAND(): он полезен для получения случайного экземпляра из множества SELECT * FROM table1,table2 WHERE a=b AND c<d ORDER BY RAND() LIMIT 1000. Следует учитывать, что оператор RAND() в выражении WHERE при выполнении выражения WHERE будет вычисляться каждый раз заново. Оператор RAND() не следует воспринимать как полноценный генератор случайных чисел: это просто быстрый способ динамической генерации случайных чисел, переносимых между платформами для одной и той же версии MySQL.

  • LEAST(X,Y,...)

    Если задано два или более аргументов, возвращает наименьший (с минимальным значением) аргумент. Сравнение аргументов происходит по следующим правилам:

    • Если возвращаемая величина используется в целочисленном контексте (INTEGER), или все аргументы являются целочисленными, то они сравниваются как целые числа.

    • Если возвращаемая величина используется в контексте действительных чисел (REAL) или все аргументы являются действительными числами, то они сравниваются как числа типа REAL.

    • Если один из аргументов является зависимой от регистра строкой, то данные аргументы сравниваются с учетом регистра.

    • В остальных случаях аргументы сравниваются как строки, независимые от регистра.

    mysql> SELECT LEAST(2,0);
    -> 0
    
    mysql> SELECT LEAST(34.0,3.0,5.0,767.0);
    -> 3.0
    
    mysql> SELECT LEAST("B","A","C");
    -> "A"
    

    В версиях MySQL до 3.22.5 можно использовать MIN() вместо LEAST.

  • GREATEST(X,Y,...)

    Возвращает наибольший (с максимальным значением) аргумент. Сравнение аргументов происходит по тем же правилам, что и для LEAST:

    mysql> SELECT GREATEST(2,0);
    -> 2
    
    mysql> SELECT GREATEST(34.0,3.0,5.0,767.0);
    -> 767.0
    
    mysql> SELECT GREATEST("B","A","C");
    -> "C"
    

    В версиях MySQL до 3.22.5 можно использовать MAX() вместо GREATEST.

  • DEGREES(X)

    Возвращает аргумент X, преобразованный из радианов в градусы:

    mysql> SELECT DEGREES(PI());
    -> 180.000000
    
  • RADIANS(X)

    Возвращает аргумент X, преобразованный из градусов в радианы:

    mysql> SELECT RADIANS(90);
    -> 1.570796
    
  • TRUNCATE(X,D)

    Возвращает число X, усеченное до D десятичных знаков. Если D равно 0, результат будет представлен без десятичного знака или дробной части:

    mysql> SELECT TRUNCATE(1.223,1);
    -> 1.2
    mysql> SELECT TRUNCATE(1.999,1);
    -> 1.9
    mysql> SELECT TRUNCATE(1.999,0);
    -> 1
    mysql> SELECT TRUNCATE(-1.999,1);
    -> -1.9
    

    Начиная с MySQL 3.23.51 все числа округляются к нулю.

    Если D - негативное, то тогда вся часть числа обнуляется:

    mysql> SELECT TRUNCATE(122,-2);
     -> 100
    

    Следует учитывать, что обычно в компьютерах десятичные числа хранятся не так, как целые, а как числа двойной точности с плавающим десятичным знаком (DOUBLE). Поэтому иногда результат может вводить в заблуждение, как в следующем примере:

    mysql> SELECT TRUNCATE(10.28*100,0);
    -> 1027
    

    Это происходит потому, что в действительности 10,28 хранится как нечто вроде 10,2799999999999999.


Назад Начало Главы Начало Раздела Начало Подраздела Вперед

Пред. Глава След. Глава
Глава 5. Оптимизация в MySQL Начало Книги Глава 7. Типы таблиц MySQL


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru