• day007--MySQL中的数值函数


    目录

    基本数值函数

    标记函数sign(x)

     绝对值函数abs(x)

     天花板函数ceil(x)/ceiling(x)

     地板函数floor(x)

     π函数pi()

     最小值函数least(x1,x2,x3)

     最大值函数greatest(x1,x2,x3)

     四舍五入函数round(x)/round(x,y)

    随机数函数rand()/rand(x)

     求余函数mod(x,y)

     截断函数truncate(x,y)

    开方函数sqrt(x)

    三角函数

    弧度制函数radians(x)

     角度制函数degrees(x)

     正弦函数sinx(x)

     余弦函数函数cos(x)

    正切函数tan(x)

     余切函数cot(x)

     反正弦函数asin(x)

     反余弦函数acos(x) 

    反正切函数atan(x)

    指数,对数函数

    指数函数pow(x,y)

    对数函数loga(x) 

    进制函数

    二进制函数bin(x)

     八进制函数oct(x)

     十六进制函数hex(x)

    conv函数--conv(x,f1,f2)


    相信大家对“函数”这个词并不陌生,会在脑海中想到我们在学数学时遇到的一次函数,三角函数,对数函数等等,这些都是函数,所谓之函数就是把我们常用的操作代码封装起来,需要的时候直接调用即可。函数的使用无疑是大大提高编写程序的效率,像我们的java中的众多api就是一个一个封装起来的函数。在MySQL中的函数可以分成两大类,一类是单行函数,另一类就是多行函数。单行函数就是输入一行SQL语句,输出的也是一行数据,多行函数虽然输出的依旧是一行数据,但是其可以输入多行SQL语句。单行函数有很多,我们先来认识基本函数中的数值函数。

    基本数值函数

    数值函数顾名思义就是函数里面的参数输入的数据类型为数值型。数值函数的使用也是挺常见的。

    标记函数sign(x)

    标记函数就是用来标记正负数的函数,当我们向标记函数中传入正数是,标记函数就会返回1,反之为负数的话则返回-1,如果为0的话就返回0;

     绝对值函数abs(x)

    绝对值函数的数学形式可以这么表示:|x|,我们都知道当里面的x为负数时,返回的结果为-x。

     天花板函数ceil(x)/ceiling(x)

    天花板函数返回的结果大于等于传入参数的整数值。我们可以想象一下,就好比我们是那个传入的参数,而现在我们正在室内,室内一抬头就可以看到头顶上的天花板。这个天花板无疑是要比我们高的,因此天花板函数返回的值大于等于我们(传入的参数)。

     地板函数floor(x)

    我们现在踩着的就是地,而我们也就是地板函数中传入的参数。不管怎么样,我们都是站在地板上的,不在地板上的话我们就没有支撑力,那可是很无法想象的。因此地板函数返回的值要比传入的参数小,只有当传入的参数为整数时,函数返回的结果才等于传入的参数。如下: 

     π函数pi()

    π函数返回的为结果为圆周率的数值,当然了是估值。保留小数位6为。

     最小值函数least(x1,x2,x3)

    最小值函数可以返回列表中的最小值

     最大值函数greatest(x1,x2,x3)

    最大值函数与最小值函数相反,返回的结果为参数列表中最大的数

     四舍五入函数round(x)/round(x,y)

    在对数据进行运算,数据的小数位不需要那么多时,我们就可以使用四舍五入函数0对其进行处理,使之小数位变少,且能够将后面的数值进行四舍五入,防止数据产生误差。与之“看起来类似”的还有截断函数,但是截断函数不适合运算,因为直接截断的话会使得我们的数据偏小。

    四舍五入函数里面可以传入一个参数也可以传入两个参数。当我们传入一个参数时,就相当于round(x,0),表示的意思为:取整数,在小数的个位如果大于5就四舍五入。

    传入两个参数时,就可以指定保留的小数位,如round(22.55,2)意思就是保留两位小数,结果为22.45,如果是保留一位小数round(22.55,1)的话小数位的十位就行四舍五入,结果为22.6。如果想要在整数位进行四舍五入的话可以在round函数的第二个参数那里传入负数。比方说我们有一个数字22.56,如果不保留小数位的话,传入的第二个参数是0,当我们想要在个位进行四舍五入的时候,第二个参数就可以传入-1。现在我们使用SQL来看一下四舍五入函数的使用效果:

    随机数函数rand()/rand(x)

    随机数函数rand()会生成一个0~1之间的小数。每运行一次rand()函数,产生的数字也会变换,如果我们不想要数字变来变去的话,可以往里面传入一个参数,使之变成种子,这样子我们无论运行多少次rand(x)的随机数都不会发生改变。如下:

     求余函数mod(x,y)

    如果我们不使用求余函数的话也可以自己写式子如:x  % y(x  mod  y)。其结果与mod(x,y)的结果相同。并且符号的正负与被除数保持一致。 

     截断函数truncate(x,y)

    截断函数顾名思义就是直接在对应的位置将数值将其切断,只保留前面的部分。截断函数里面的两个参数表示为:数字x截断为y位小数。一般不用在运算里面,而是用在条件判断里面,比方说如果我们输入的数字有空格,那个我们就可以使用截断函数,将空格切掉。现在我们先来简单的看一下截断函数的使用效果:

     如上,我们可以看到截断函数不像四舍五入函数那样在大于5的地方进行四舍五入,而是直接切掉

    开方函数sqrt(x)

    在mysql中可以使用sqrt(x)函数来表示开方,即根号下x。

    三角函数

    弧度制函数radians(x)

    弧度角函数可以将角度值转换成弧度值,因此我们需要传入的参数为角度值(我们不需要写单位°)

    如上,我们可以看到radians函数已经将我们的角度值转换成了弧度角的形式,并且将其算了出来,如果我们不想要显示那么多小数位的话可以使用四舍五入函数将其简化成只有两位小数: 

     角度制函数degrees(x)

    角度函数就是将弧度角转换成角度角,我们需要传入的参数x值为弧度值。【叫什么函数最终得到的角就叫什么角】

     现在我们再将其四舍五入,取到整数的个位,不要小数位。

     我们可以看到角度函数通过传入的π/6弧度角得到了角度为30°的值。

     正弦函数sinx(x)

    在MySQL中正弦函数只能传入弧度制角,是我们比较熟悉角的是度制角,怎么办呢?这个时候我们就可以使用之前的弧度制函数将我们的角度制角转换成弧度制角。如下计算30度角的正弦值。

    我们都知道sin(30°)=1/2=0.5,所以可以对我们上面结果进行四舍五入处理,如下

     余弦函数函数cos(x)

    余弦函数与正弦函数一样,参数x只能是弧度角,我们直接来看结果:

    正切函数tan(x)

    如下我们使用正切函数得到tan(30°)的正切值(30°角的正切值为√3/3,约等于0.6):

     余切函数cot(x)

    如下为cot(30)的余切值(30°的余切值为√3,约等于1.7):

     反正弦函数asin(x)

    在数学中,反函数是使用arc开头的,但是在MySQL中缩写成了a。我们都知道,原函数的定义域是该反函数的值域,原函数的值域是反函数的定义域。因此,我们的反函数里面传入的参数为之前的三角函数的函数值。比方说sin(90°)=1,那么asin(1)=90°=π/2≈1.57.

    再举个栗子:我们去求反函数的值时,其实返回的是原函数的自变量。

    sin(45°)=√2/2

    arcsin(√2/2)=45°=π/4≈0.79

    【电脑输出根号符号:左手按住换挡键,即“Alt”键不放。右手依次在右侧数字键盘上按“41420”,松开双手,根号(√)就出来了。-----来自百度百科】

     反余弦函数acos(x) 

     使用SQL语句:acos(1)=0

    ∵1=cos(0°)

    ∴arccos(1)=0

    ∴acos(1)=0

    反正切函数atan(x)

    在数学里面我们的反正切函数只能传入一个参数值,

    但是在MySQL中我们有个atan2(x,y)函数,该函数可以传入两个参数值,并返回两个参数的正切值。 

     分析:

    ∵tan(45°)=1

    又∵arctan(1)=45°=π/4=3.1415/4≈0.79

    ∴ atan(tan(radians(45)))=0.785

    指数,对数函数

    指数函数pow(x,y)

    pow)(x,y)返回的结果为x的y次方。

    对数函数loga(x) 

    在数学中对数函数表示为loga(x):以a为底,真数为x的对数函数。在学习数学时相信大家没有忘记以e为底,以10为底的对数表示。没错,就是以e为底--ln(x),以10为底--lg(x)。

    是很遗憾,在MySQL中没有lg(x)函数的存在,同时也不能随意的指定底数a的值,底数只能为2或者是10。并且使用的log(x)函数与ln(x)函数一样,都是以e为底的对数函数。

     在对数函数中还有一种函数exp(x),该函数表示e的x次方。e≈2.71828

    进制函数

    众所周知,计算机存储数据使用的是二进制来存储的,即由0和1组合而成的数。我们生活中使用的数字都是10进制,比如18岁,66元,10个月等等。当我们需要使用到其他进制数时既可以通过自己的手算也可以通过调用函数的方式。有兴趣的可以去了解怎么手算进制间的转换,在这里我们就只使用函数的调用。

    二进制函数bin(x)

    二进制函数可以将我们传入的10进制数转换成二进制数,如下:

     八进制函数oct(x)

    八进制函数将十进制数转换成八进制数

     十六进制函数hex(x)

    十六进制函数是将十进制数转换成十六进制

    conv函数--conv(x,f1,f2)

    使用conv函数我们可以自己指定两个数之间使用的进制函数是二进制,八进制,十进制还是十六进制。当我们想要知道16进制的18转换成8进制会是多少时,如果单纯的用进制函数的话,还得需要进行函数嵌套:①首先需要将16进制的18转换成二进制,得到11000,②接着我们再将二进制转换成10进制得24③最后使用八进制函数oct(24)。

    但是我们使用conv函数的话就不需要那么麻烦:conv(18,16,8)。如下 oct(24)与conv(18,16,8)的结果相同。

     

     到这里我们把MySQL中的数值函数都展示了一遍,如果有疑问的话,请在评论区留言。

  • 相关阅读:
    深度 | 联手美邸、招商观颐等多家康养巨头,头部AI和机器人公司如何构建养老产业的智能新生态?
    在SpringBoot框架下,接口有读个实现类,在不改变任何源码的情况下,SpringBoot怎么知道给接口注入哪个实现类的依赖呢?
    使用openssl rand随机生成MAC地址的方法
    外汇天眼:MT4白标与MT5,谁更适合如今的外汇市场?
    2024.03.04——2024.03.10 力扣练习总结及专项巩固(二)
    24. Kernel 4.19环境下,Cilium网络仍然需要使用iptables
    2022年武汉市工业节能专项资金申报条件以及流程(附奖励补贴标准)
    在windows机器上上架IOS苹果应用
    21天Python进阶学习计划
    unity的debug.log无法显示console控制台
  • 原文地址:https://blog.csdn.net/weixin_53046747/article/details/126154731