10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 本手册下载 从本手册中摘录

12.6.2数学函数

表12.10数学函数

的名字 描述
ABS() 返回绝对值
ACOS() 返回弧余弦
Asin() 返回弧形正弦
(每股) 返回arctan
量化(),(每股) 返回两个参数的反正切
装天花板() 返回最小的整数值,不小于参数
天花板() 返回最小的整数值,不小于参数
CONV () 在不同的数基之间转换数
Cos() 返回余弦
COT() 返回余切
CRC32 () 计算循环冗余校验值
Degle() 将弧度转换为度
EXP () 提升到…的力量
地板() 返回不大于实参的最大整数值
LN () 返回参数的自然对数
日志() 返回第一个参数的自然对数
log10() 返回参数的基本-10对数
LOG2 () 返回参数的以2为底的对数
国防部() 返回余数
π() 返回pi的值
战俘() 将提升到指定电源的参数返回
权力() 将提升到指定电源的参数返回
弧度() 返回参数转换为弧度
RAND () 返回一个随机浮点值
圆形的() 在论证
(标志) 返回参数的符号
SIN () 返回参数的正弦值
SQRT () 返回参数的平方根
谭() 返回论证的切线
截断() 截断到指定的小数位数

所有的数学函数都会返回如果发生错误。

  • ABS (X)

    的绝对值X,或如果X

    结果类型派生自实参类型。其中的一个含义是ABS (-9223372036854775808)产生错误,因为结果不能存储在有符号的长整型数字价值。

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

    使用此功能可安全使用长整型数字值。

  • 这些“可信赖医疗组织”(X)

    的反余弦X,也就是说,余弦的价值是X。返回如果X不在射程内11

    mysql >选择治疗(1);-> 0 mysql> SELECT ACOS(1.0001)-> NULL mysql> SELECT ACOS(0);- > 1.5707963267949
  • 最佳翻译(X)

    返回的反正弦X,也就是sin的值X。返回如果X不在射程内11

    MySQL>选择ASIN(0.2);- > 0.20135792079033 mysql>选择Asin('foo');+ ------------- + |Asin('foo')|+ ------------- + |0 |+ -------------- + 1行,1条警告(0.00秒)MySQL> Show Warnings;+ --------- + ------ + ------------------------------------------------- + |水平|代码| Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'foo' | +---------+------+-----------------------------------------+
  • 晒黑(X)

    的反正切X,即其正切值X

    mysql >选择:(2);-> 1.1071487177941 mysql> SELECT ATAN(-2)- > -1.1071487177941
  • 晒黑(Y,X),量化(Y,X)

    返回两个变量的反正切值XY。它类似于计算的反正切Y/X,除了两个参数的符号都用于确定结果的象限。

    mysql >选择:(2,2);> -0.78539816339745 mysql> SELECT ATAN2(PI(),0);- > 1.5707963267949
  • (即:X)

    装天花板()是同义词吗天花板()

  • 天花板(X)

    返回不小于的最小整数值X

    mysql >选择上限(1.23);-> 2 mysql> SELECT CEILING(-1.23);- > 1

    对于精确数值参数,返回值具有精确数值类型。对于字符串或浮点参数,返回值为浮点类型。

  • CONV (N,from_base,to_base)

    在不同的数基之间转换数。返回数字的字符串表示形式N,由基底转换from_base基地to_base。返回如果有任何争论。这个论点N被解释为整数,但可以指定为整数或字符串。最小基数是2最大底是36。如果from_base是一个负数,N视为有符号数。否则,N被视为无符号。CONV ()工作与64位精度。

    mysql >选择CONV (' a ', 16日2);-> '1010' mysql> SELECT CONV('6E',18,8);-> '172' mysql> SELECT CONV(-17,10,-18);- > - h的mysql >选择CONV(10 + 10”+“10”+ X ' 0 ', 10、10);——>“40”
  • Cos(X)

    返回的cosX,在那里X以弧度表示。

    mysql >选择COS(π());- > 1
  • COT(X)

    的余切值X

    mysql >选择床(12);-> -1.5726734063977 mysql> SELECT COT(0);- >超出范围错误
  • CRC32 (expr)

    计算一个循环冗余校验值并返回一个32位的无符号值。结果是如果参数是。参数应该是一个字符串,如果不是的话(如果可能的话)将被视为一个字符串。

    mysql >选择CRC32 (mysql);-> 3259397556 mysql> SELECT CRC32('mysql');- > 2501908538
  • 度(X)

    返回参数X,从弧度转换为角度。

    mysql >选择度(π());-> 180 mysql> SELECT DEGREES(PI() / 2);- > 90
  • EXP (X)

    返回值e(自然对数的底)的幂X。这个函数的倒数是日志()(仅使用单个参数)或LN ()

    MySQL> Select Exp(2);- > 7.3890560989307 MySQL> Select Exp(-2);- > 0.13533528323661 MySQL> Select Exp(0);- > 1
  • 楼(X)

    返回不大于的最大整数值X

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

    对于精确数值参数,返回值具有精确数值类型。对于字符串或浮点参数,返回值为浮点类型。

  • 格式(X,D)

    格式数量X到类似于'#,###,###.##',四舍五入D十进制的位置,并将结果作为字符串返回。有关详细信息,请参阅第12.8节,字符串函数和操作符

  • 十六进制(N_or_S)

    此函数可用于获得十进制数或字符串的十六进制表示;这样做的方式根据参数的类型而不同。中对该函数的描述第12.8节,字符串函数和操作符的细节。

  • LN (X)

    的自然对数X;也就是碱e的对数X。如果X小于等于0。0e0,函数返回和一个警告对对数无效的参数据报道。

    mysql >选择LN (2);-> 0.69314718055995 mysql> SELECT LN(-2)- >零

    这个函数与日志(X)。这个函数的倒数是EXP ()函数。

  • 日志(X),日志(B,X)

    如果用一个参数调用,则此函数返回自然对数X。如果X小于等于0。0e0,函数返回和一个警告对对数无效的参数据报道。

    此功能的倒数(用单个参数调用时)是EXP ()函数。

    mysql >选择日志(2);-> 0.69314718055995 mysql> SELECT LOG(-2)- >零

    如果调用时带有两个参数,则该函数返回的是的对数X的基础B。如果X小于等于0,或者B小于等于1返回。

    MySQL>选择日志(2,65536);- > 16 mysql>选择log(10,100);- > 2 mysql>选择log(1,100);- >零

    日志(B,X)相当于日志(X) / 日志(B)

  • LOG2 (X)

    返回以2为底的对数X。如果X小于等于0。0e0,函数返回和一个警告对对数无效的参数据报道。

    mysql >选择LOG2 (65536);-> 16 mysql> SELECT LOG2(-100);- >零

    LOG2 ()对于找出一个数字需要多少位来存储是有用的。这个函数等价于这个表达式日志(X) /日志(2)

  • LOG10 (X)

    返回以10为底的对数X。如果X小于等于0。0e0,函数返回和一个警告对对数无效的参数据报道。

    mysql>选择log10(2);- > 0.30102999566398 mysql>选择log10(100);- > 2 mysql>选择log10(-100);- >零

    LOG10 (X)相当于日志(10,X)

  • 国防部(N,),N%,N国防部

    模操作。返回N除以

    MySQL> Select Mod(234,10);- > 4 mysql>选择253%7;- > 1 mysql>选择mod(29,9);- > 2 mysql>选择29 mod 9;- > 2

    使用此功能可安全使用长整型数字值。

    国防部()也适用于有小数部分的值,并在除法后返回精确的余数:

    mysql >选择MOD (34.5, 3);- > 1.5

    国防部(N,0)返回

  • π()

    返回π的值。默认显示的小数点位数是7,但是MySQL内部使用完整的双精度值。

    mysql>选择pi();- > 3.141593 MySQL> Select Pi()+ 0.00000000000000000000;- > 3.141592653589793116.
  • 战俘(X,Y)

    返回值X提升到…的能力Y

    mysql >选择战俘(2,2);-> 4 mysql> SELECT POW(2, 2);- > 0.25
  • 功率(X,Y)

    这是…的同义词战俘()

  • 弧度(X)

    返回参数X,从角度转换为弧度。(注意π弧度等于180度。)

    mysql >选择弧度(90);- > 1.5707963267949
  • 兰特([N])

    返回随机浮点值v范围内0<=v<1.0。获取随机整数R范围内<=R<j,使用表达式楼(+ rand()*(j))。例如,获取范围内的一个随机整数7<=R<12,使用以下语句:

    Select floor (7 + (rand () * 5));

    如果是整型参数N指定,它用作种子值:

    • 如果使用常量初始化器参数,则在语句准备就绪时(在执行之前)初始化种子一次。

    • 使用一个非常量初始化器参数(例如列名),种子将用每次调用的值初始化RAND ()

    这种行为的一个含义是,对于相等的论证值,兰特(N)每次返回相同的值,从而产生一个可重复的列值序列。在下面的例子中,由产生的值序列兰特(3)它发生的两个地方都是一样的。

    mysql> CREATE TABLE t (i INT);mysql> INSERT INTO t VALUES(1),(2),(3);mysql> SELECT i, RAND() FROM t; mysql> SELECT i, RAND() FROM t;+------+------------------+ | 我|兰德 () | +------+------------------+ | 1 | 0.61914388706828 | | 2 | 0.93845168309142 | 0.83482678498591 | 3 |  | +------+------------------+ 3行集(0.00秒)mysql >选择我,从t兰德(3);+------+------------------+ | 我|兰德(3 ) | +------+------------------+ | 1 | 0.90576975597606 | | 2 | 0.37307905813035 | 0.14808605345719 | 3 |  | +------+------------------+ 3行集(0.00秒)mysql >选择我,从t RAND ();+------+------------------+ | 我|兰德 () | +------+------------------+ | 1 | 0.35877890638893 | | 2 | 0.28941420772058 | 0.37073435016976 | 3 |  | +------+------------------+ 3行集(0.00秒)mysql >选择我,从t兰德(3);+------+------------------+ | 我|兰德(3 ) | +------+------------------+ | 1 | 0.90576975597606 | | 2 | 0.37307905813035 | 0.14808605345719 | 3 |  | +------+------------------+ 3行集(0.01秒)

    RAND ()在一个在哪里子句对每一行(从一个表中选择时)或行组合(从多表连接中选择时)进行计算。因此,为了优化,RAND ()不是常量值,不能用于索引优化。有关更多信息,请参阅第8.2.1.18节,“函数调用优化”

    使用列与RAND ()值在一个命令集团子句可能会产生意想不到的结果,因为对于任意一个子句aRAND ()表达式可以为同一行计算多次,每次返回不同的结果。如果目标是按随机顺序检索行,你可以使用这样的语句:

    SELECT * FROMtbl_nameORDER BY RAND ();

    若要从一组行中选择一个随机样本,请进行组合ORDER BY RAND ()限制:

    选择*从table1,table2,其中a = b和c rand()限制1000;

    RAND ()并不意味着是一个完美的随机发生器。这是一种快速的方法,可以根据需要在同一MySQL版本的平台之间移植的随机数。

    基于语句的复制,此功能不安全。如果使用此功能,则记录警告binlog_format.设定为声明

  • 圆(X),圆(X,D)

    轮的参数XD位小数。的数据类型决定舍入算法XD如果没有指定,默认为0。D会不会是阴性引起的D数值的小数点左边的数字X成为零。的最大绝对值D是30;任何超过30(或-30)的数字都会被截断。

    mysql >选择圆(-1.23);-> -1 mysql> SELECT ROUND(-1.58);-> -2 mysql> SELECT ROUND(1.58)mysql> SELECT ROUND(1.298, 1);mysql> SELECT ROUND(1.298, 0);mysql> SELECT ROUND(23.298, -1);-> 20 mysql> SELECT ROUND(。12345678901234567890123456789012345, 35); -> 0.123456789012345678901234567890

    返回值与第一个参数具有相同的类型(假设它是整数、双精度或十进制)。这意味着对于整数参数,结果是一个整数(没有小数点):

    mysql> SELECT ROUND(150.000,2), ROUND(150,2);+------------------+--------------+ | 轮(150.000,2)|(150年,2 ) | +------------------+--------------+ | 150.00 | 150  | +------------------+--------------+

    圆形的()根据第一个参数的类型使用以下规则:

    • 为精确值的数字,圆形的()使用四舍五入四舍五入到最近的规则:小数部分为。5或更大的值,如果为正,则四舍五入到下一个整数;如果为负,则四舍五入到下一个整数。(换句话说,它是四舍五入的零。)小数部分小于0.5的值,如果为正,则四舍五入到下一个整数;如果为负,则四舍五入到下一个整数。

    • 对于近似值,结果取决于C库。在许多系统上,这意味着圆形的()使用四舍五入规则:小数部分正好在两个整数中间的值被舍入到最接近的偶数。

    下面的例子展示了精确值和近似值的舍入差异:

    mysql> SELECT ROUND(2.5), ROUND(25E-1);+------------+--------------+ | (25 e 1(2.5) |轮 ) | +------------+--------------+ | 3 | 2  | +------------+--------------+

    有关更多信息,请参阅第12.22节,“精确数学”

  • 号(X)

    返回参数的标志1,0,或1,取决于是否X是负的,零的,还是正的。

    mysql >选择信号(-32);-> -1 mysql> SELECT SIGN(0);-> 0 mysql> SELECT SIGN(234)- > 1
  • SIN (X)

    返回的正弦值X,在那里X以弧度表示。

    mysql >选择罪(π());-> 1.2246063538224e-16 mysql> SELECT ROUND(SIN(PI()));- > 0
  • sqrt(X)

    返回非负数的平方根X

    mysql >选择SQRT (4);-> 2 mysql> SELECT SQRT(20);-> 4.4721359549996 mysql> SELECT SQRT(-16);- >零
  • 谭(X)

    返回的正切X,在那里X以弧度表示。

    mysql >选择TAN(π());-> -1.2246063538224e-16 mysql> SELECT TAN(PI()+1);- > 1.5574077246549
  • 截断(X,D)

    返回数字X,截断到D位小数。如果D0,结果没有小数点或小数部分。D会不会是阴性引起的D数值的小数点左边的数字X成为零。

    mysql >选择截断(1.223,1);-> 1.2 mysql> SELECT TRUNCATE(1.999,1);> 1.9 mysql> SELECT TRUNCATE(1.999,0);mysql> SELECT TRUNCATE(-1.999,1);-> -1.9 mysql> SELECT TRUNCATE(122,-2)-> 100 mysql> SELECT TRUNCATE(10.28*100,0);- > 1028

    所有数字都四舍五入到零。