首页 > 其他分享 >单行函数

单行函数

时间:2023-05-25 23:55:22浏览次数:51  
标签:RAND 函数 10 RADIANS 单行 DEGREES mysql

1. 函数的理解

1.1 什么是函数

  • 函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。
  • 这样既 提高了代码效率 ,又 提高了可维护性 。
  • 在 SQL 中我们也可以使用函数对检索出来的数据进行函数操作。
  • 使用这些函数,可以极大地 提高用户对数据库的管理效率 。
  • 从函数定义的角度出发,我们可以将函数分成 内置函数自定义函数
  • 在 SQL 语言中,同样也包括了内置函数和自定义函数。内置函数是系统内置的通用函数,而自定义函数是我们根据自己的需要编写的

1.2 不同DBMS函数的差异

  • 我们在使用 SQL 语言的时候,不是直接和这门语言打交道,而是通过它使用不同的数据库软件,即DBMS
  • DBMS 之间的差异性很大,远大于同一个语言不同版本之间的差异
  • 实际上,只有很少的函数是被 DBMS 同时支持的。比如,大多数 DBMS 使用(||)或者(+)来做拼接符,而在 MySQL 中的字符串拼接函数为concat()。
  • 大部分 DBMS 会有自己特定的函数,这就意味着采用 SQL 函数的代码可移植性是很差的,因此在使用函数的时候需要特别注意

2. MySQL函数分类

  • MySQL提供的内置函数从 实现的功能角度 可以分为数值函数、字符串函数、日期和时间函数、流程控制函数、加密与解密函数、获取MySQL信息函数、聚合函数等。
  • 这里,我将这些丰富的内置函数再分为两类: 单行函数 、 聚合函数(或分组函数)

2.1 两种SQL函数

2.2 单行函数

  • 操作数据对象
  • 接受参数返回一个结果
  • 只对一行进行变换
  • 每行返回一个结果
  • 可以嵌套
  • 参数可以是一列或一个值

3. 数值函数

3.1 基本函数

mysql> SELECT ABS(-123), ABS(32),SIGN(-23), SIGN(43), PI(), CEIL(32.32), CEILING(-43.23), FLOOR(32.32), FLOOR(-43.23),MOD(12,5) FROM dual;
+-----------+---------+-----------+----------+----------+-------------+-----------------+--------------+---------------+-----------+
| ABS(-123) | ABS(32) | SIGN(-23) | SIGN(43) | PI()     | CEIL(32.32) | CEILING(-43.23) | FLOOR(32.32) | FLOOR(-43.23) | MOD(12,5) |
+-----------+---------+-----------+----------+----------+-------------+-----------------+--------------+---------------+-----------+
|       123 |      32 |        -1 |        1 | 3.141593 |          33 |             -43 |           32 |           -44 |         2 |
+-----------+---------+-----------+----------+----------+-------------+-----------------+--------------+---------------+-----------+
1 row in set (0.00 sec)

mysql>
mysql> SELECT RAND(),RAND(),RAND(10),RAND(10),RAND(-1),RAND(-1);
+-------------------+--------------------+--------------------+--------------------+--------------------+--------------------+
| RAND()            | RAND()             | RAND(10)           | RAND(10)           | RAND(-1)           | RAND(-1)           |
+-------------------+--------------------+--------------------+--------------------+--------------------+--------------------+
| 0.709063702923305 | 0.5131437885697407 | 0.6570515219653505 | 0.6570515219653505 | 0.9050373219931845 | 0.9050373219931845 |
+-------------------+--------------------+--------------------+--------------------+--------------------+--------------------+
1 row in set (0.00 sec)

mysql> 
mysql> SELECT ROUND(12.33),ROUND(12.343,2),ROUND(12.343,-1),TRUNCATE(12.66,1),TRUNCATE(12.66,-1),SQRT(16), SQRT(-16);
+--------------+-----------------+------------------+-------------------+--------------------+----------+-----------+
| ROUND(12.33) | ROUND(12.343,2) | ROUND(12.343,-1) | TRUNCATE(12.66,1) | TRUNCATE(12.66,-1) | SQRT(16) | SQRT(-16) |
+--------------+-----------------+------------------+-------------------+--------------------+----------+-----------+
|           12 |           12.34 |               10 |              12.6 |                 10 |        4 |      NULL |
+--------------+-----------------+------------------+-------------------+--------------------+----------+-----------+
1 row in set (0.00 sec)

mysql> 

3.2 弧度和角度装换的函数

mysql> SELECT RADIANS(30),RADIANS(60),RADIANS(90),DEGREES(2*PI()),DEGREES(RADIANS(90)) FROM dual;
+--------------------+--------------------+--------------------+-----------------+----------------------+
| RADIANS(30)        | RADIANS(60)        | RADIANS(90)        | DEGREES(2*PI()) | DEGREES(RADIANS(90)) |
+--------------------+--------------------+--------------------+-----------------+----------------------+
| 0.5235987755982988 | 1.0471975511965976 | 1.5707963267948966 |             360 |                   90 |
+--------------------+--------------------+--------------------+-----------------+----------------------+
1 row in set (0.00 sec)

mysql> 

3.3 三角函数

  • ATAN2(M,N)函数返回两个参数的反正切值。 与ATAN(X)函数相比,ATAN2(M,N)需要两个参数
  • 例如有两个点point(x1,y1)和point(x2,y2),使用ATAN(X)函数计算反正切值为ATAN((y2-y1)/(x2-x1)),
  • 使用ATAN2(M,N)计算反正切值则为ATAN2(y2-y1,x2-x1)。
  • 由使用方式可以看出,当x2-x1等于0时,ATAN(X)函数会报错,而ATAN2(M,N)函数则仍然可以计算
mysql> SELECT SIN(RADIANS(30)),DEGREES(ASIN(1)),TAN(RADIANS(45)),DEGREES(ATAN(1)),DEGREES(ATAN2(1,1) )FROM DUAL;
+---------------------+------------------+--------------------+------------------+----------------------+
| SIN(RADIANS(30))    | DEGREES(ASIN(1)) | TAN(RADIANS(45))   | DEGREES(ATAN(1)) | DEGREES(ATAN2(1,1) ) |
+---------------------+------------------+--------------------+------------------+----------------------+
| 0.49999999999999994 |               90 | 0.9999999999999999 |               45 |                   45 |
+---------------------+------------------+--------------------+------------------+----------------------+
1 row in set (0.00 sec)

mysql>

3.4 幂函数

mysql>  SELECT POW(2,5),POWER(2,4),EXP(2),LN(10),LOG10(10),LOG2(4) FROM dual;
+----------+------------+------------------+-------------------+-----------+---------+
| POW(2,5) | POWER(2,4) | EXP(2)           | LN(10)            | LOG10(10) | LOG2(4) |
+----------+------------+------------------+-------------------+-----------+---------+
|       32 |         16 | 7.38905609893065 | 2.302585092994046 |         1 |       2 |
+----------+------------+------------------+-------------------+-----------+---------+
1 row in set (0.00 sec)

mysql> 

3.5 进制间的转换

mysql>  SELECT BIN(10),HEX(10),OCT(10),CONV(10,2,8) FROM dual;
+---------+---------+---------+--------------+
| BIN(10) | HEX(10) | OCT(10) | CONV(10,2,8) |
+---------+---------+---------+--------------+
| 1010    | A       | 12      | 2            |
+---------+---------+---------+--------------+
1 row in set (0.00 sec)

mysql> 

4. 字符串函数



标签:RAND,函数,10,RADIANS,单行,DEGREES,mysql
From: https://www.cnblogs.com/styCy/p/17433344.html

相关文章

  • learn c++ 函数返回
                      ......
  • Python求前后第n个月函数
    数据分析常用到:#求往后第n个月#monthstr格式:YYYY-MM##printnext_month("2023-05",1)#2023-06#printnext_month("2023-05",6)#2023-11#printnext_month("2023-05",8)#2024-01defnext_month(monthstr,n):yearnum=int(mont......
  • C语言编程—函数的介绍
    函数是一组一起执行一个任务的语句。每个C程序都至少有一个函数,即主函数main(),所有简单的程序都可以定义其他额外的函数。您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。函数声明告......
  • JavaScript中的生成器函数(Generator Functions)
    简介:生成器函数(GeneratorFunctions)是JavaScript中的一种特殊类型函数,它允许开发者在函数内部产生多个值并逐步返回,与传统函数一次返回单个值的方式不同。本文将介绍生成器函数的特性、优缺点以及如何使用它们,并提供一些代码案例来说明其用法。特性:使用function\*关键字声明:生成......
  • C语言函数大全-- x 开头的函数(5)
    C语言函数大全本篇介绍C语言函数大全--x开头的函数1.xdrmem_create1.1函数说明函数声明函数功能voidxdrmem_create(XDR*xdrs,caddr_taddr,u_intsize,enumxdr_opop););用于创建一个内存XDR流,以便进行编码或解码操作参数:xdrs:指向XDR数据结......
  • 激活函数及其梯度
    激活函数及其梯度1959年科学家对青蛙神经元的机制进行了研究,发现神经元不是对所有的输入都响应,而是只有值大于某个阈值时才会响应,且输出的值是固定的。科学家借鉴这种机制发明了神经元模型。这个函数在z=0处是不连续的,没法求它的导数,无法使用梯度下降进行优化。为了解决这......
  • 常见LOSS函数之MSE
    MSE及其梯度MSE(meansquarederror均方差)pytorch实现方法一:autograd方法二:backwardcrossentropyloss......
  • 似然函数与损失函数
    似然函数与损失函数一、误差对于每个样本,真实值等于预测值与误差之和。每一个样本的误差,都是独立且同分布的,并且均服从高斯分布由于误差服从高斯分布,误差的概率分布可表示为P(e(i)),于是theta的概率分布也可表示出来,如下二、似然函数我们的目标是找出使预测值最接近真实......
  • Ansible_Runner run函数代码详解
    需求背景:随着第一版远程执行发布使用paramiko模块进行远程调用脚本的稳定,开始着手第二版关于使用ansiblerunner执行远程发布任务paramiko和ansiblerunner各自的优缺点:Paramiko:Paramiko是一个Python的SSH库,用于在远程主机上执行命令。优点:直接通过SSH连接到远程主机,无需......
  • Problem E: 编写函数:Swap (I) (Append Code)
    ProblemE:编写函数:Swap(I)(AppendCode)TimeLimit:1Sec  MemoryLimit:16MBSubmit:7937  Solved:5693[Submit][Status][WebBoard]Description编写用来交换两个数的函数,使得“AppendCode”中的main()函数能正确运行。---------------------------......