(新人必看)MySQL的函数了解一下!!!(数学函数控制流函数字符串函数)

Posted Glume颖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(新人必看)MySQL的函数了解一下!!!(数学函数控制流函数字符串函数)相关的知识,希望对你有一定的参考价值。

一、数学函数

  1. 数学函数是用来处理数值数据方面的运算,mysql 中主要的数学函数有绝对值函数、三角函数、对数函数和随机函数等。
  2. 使用数学函数的过程中,如果有错误发生,该函数将返回 null。

 数学函数

功能介绍

 ABS(x)

返回 x 的绝对值

 PI( )

返回圆周率,默认显示 6 位小数 3.141593

 SQRT(x)

返回非负数 x 的二次方根

 POW(x,y) 和 

 POWER(x,y)

返回 x 的 y 次乘方的结果值,POW(3,4) 的结果值为 81

 CEIL(x) 和  

 CEILING(x)

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

 FLOOR(x)

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

 ROUND(x)

返回最接近 x 的整数,对 x 进行四舍五入

 ROUND(x,y)

返回最接近 x 的整数,对 x 进行四舍五入 , 保留小数点后面 y 位

 TRUNCATE(x,y)

返回截去小数点后 y 位的数值 x

 RAND()

返回一个随机浮点值 v,0<=v<=1

 RAND(x)

返回一个随机浮点值 v,0<=v<=1;x 为整数,被用作种子值, 用来产生重复序列。

 LOG(x)

返回 x 的自然对象,x 相对于基数 e 的对数

 LOG10(x)

返回 x 的基数为 10 的对数

 RADIANS(x)

返回 x 由角度转化为弧度的值,如 x 取值 90,则返回的弧度为PI( )/2

 DEGREES(x)

返回 x 由弧度转化为角度的值,如 x 取 PI( ),则返回的角度值为180

示例:

1.使用 ceil(x) 和 ceiling(x) 返回不小于 x 的最小整数。

代码:select ceil(2), ceil(2.75), ceil(-2), ceil(-2.75)

2.使用 floor(x) 返回不大于 x 的最大整数。

代码:select floor(2), floor(2.75), floor(-2), floor(-2.75)

3.使用 rand() 产生 0~1 的浮点数。

代码:select rand(),rand(),rand()

4.用 rand(x) 产生 0~1 的浮点数。

代码:select rand(5),rand(5),rand(11)

5.使用 round(x) 返回最接近于参数 x 的整数。

代码:select round(-2.5), round(-2.25), round(-2.75), round(2.25), round(2.75)

6.使用 round(x,y) 对参数 x 进行四舍五入的操作,返回值保留小数点后面指定的 y 位。

代码:select round(-2.55,1),round(-2.25,3),round(375.49,-1),round(375.49,-1)

7.使用 truncate(x,y) 对参数 x 进行截取操作。

代码:select truncate(2.25,1),truncate(2.99,1),truncate(2.99,0),truncate(99.99,-1)

二、控制流函数

  1. 控制流函数也称作“条件判断函数”,其根据满足的条件不同,执行相应的流程。
  2. MySQL 中常见的控制流函数有 IF、IFNULL。

 控制流函数

功能介绍

 IF(expr,v1,v2)

返回表达式 expr 得到不同运算结果时对应的值。若 expr 为TRUE(expr<>0 and expr<>null), 则 IF( ) 的返回值为 v1,否则为 v2

 IFNULL(v1,v2)

返回参数 v1 或 v2 的值。如果 v1 不为 null,则返回值为 v1,否则返回值为 v2

示例:

公交集团将线路长度大于或等于 22 千米的线路定义为长途线路,小于 22 千米的线路定义为短途,并且将那些没有配备到具体公司的线路的所属公司定义为“待分配”。使用 IF() 和 IFNULL() 控制流函数显示所有线路的线路号、所属公司和线路类型(“长途”和“短途”)。

代码:select lineNo 线路 , ifnull(company,' 待分配 ') 所属公司 , if(miles>=22,' 长途 ',' 短途 ') 线路类型  from line

三、字符串函数

字符串函数主要用来处理字符串数据,MySQL 字符串函数主要有计算字符长度函数、字符串合并函数、字符串转换函数、字符串比较函数以及查找指定字符串位置函数等。

 字符串函数

功能介绍

 CHAR_LENGTH(str)

返回字符串 str1 包含字符的个数。像中文这种多字节的一个字符也只能算单字符

 LENGTH(str)

返回字符串 str1 包含字节的个数

 CONCAT(s1,s2,…)

字符串合并函数,返回结果为连接参数产生的字符串。参数可以是一个或多个。如有任意一个字符串参数为 null,则返回值为 null

 INSERT(str,pos,len,newstr)

替换字符串函数。字符串 str 在位置 pos 起始且长度为 len 的子串由字符串 newstr 替换,最终返回替换之后的 str

 LOWER(str) 和 LCASE(str)

这两个函数功能相同,都是将字符串 str 中的字母转换为小写

 UPPER(str) 和 UCASE(str)

这两个函数功能相同,都是将字符串 str 中的字母转换为大写

 SUBSTR(str,pos,len)  和 

 SUBSTRING(str,pos,len)

截取原始字符串 str 中从 pos 开始的 len 长度字符串。len 是可选项,如果该项缺省则获取从 pos 开始的剩余字符串内容

 LFFT(str,len)

截取左侧字符串函数,返回 str 最左的 len 个字符

 RIGHT(str,len)

截取右侧字符串函数,返回 str 最左的 len 个字符

 LTRIM(str)

删除字符串 str 左侧所有空格

 RTRIM(str)

删除字符串 str 右侧所有空格

 TRIM(str)

删除字符串 str 左右两端所有空格

 TRIM(s1 from str)

删除字符串 str 中两端包含的子字符串 s1

 REPEAT(str,n)

重复生成字符串函数。返回一个由重复的字符串 str 组成的字符串,该字符串中 str 的重复次数是 n。若 n<=0,则返回一个空字符串;若 str 或 n 为 null,则返回 null

 STRCMP(s1,s2)

比较字符串大小函数。若 s1 和 s2 相等,则返回 0;若 s1 小于 s2,则返回 -1;若 s1 大于 s2,则返回 1

 LOCATE(s1,str)

匹配字符串开始位置的函数。返回子字符串 s1 在字符串 str 中第一次出现的位置。若 str 中没有包括 s1,则返回 0

 ELT(n,s1,s2…sn)

返回指定位置的字符串函数。根据 n 的取值,返回指定的字符串 sn。若 n=1,则返回 s1;若 n=2,则返回 s2,以此类推。若 n<1 或 n>sn 的数目,则返回值为 null

 FIELD(s,s1,s2…sn)

返回指定字符串位置的函数。返回字符串 s 在 s1,s2,…sn 中出现的位置。如果找不到,则返回值为 0;若 s 为 null,则返回值为 0

 INSERT(str,s1)

匹配字符串开始位置的函数。功能同 LOCATE 函数

 REPLACE(str,s1,s2)

替换函数。使用字符串 s2 替换字符串 str 中所有的子字符串s1

 REVERSE(str)

返回和原始字符串 str 顺序相反的字符串

示例:

1.使用 char_length(str) 和 length(str) 计算字符个数和字节个数。

代码:select char_length('test'),char_length(' 测试 '),length('test'),length(' 测试 ')

2.使用 concat(s1,s2,…) 函数连接多个字符串。

代码:select concat('My','SQL'), concat('My',null,'SQL'), concat(' 我 ',' 爱 ','MySQL')

3.使用 insert(str,pos,len,newstr) 函数进行字符串替换操作。

代码:select insert('first',2,3,'second') column1, insert('first',-1,2,'second') column2, insert('first',6,3,'second') column3 ,insert('first',3,20,'second') column4, insert('first',3,null,'second') column5

4.使用 substr(str,pos,len) 截取原始字符串 str 中从 pos 开始的 len 长度字符串。

代码:select substr('MySQL',3,2) column1, substr('MySQL',3) column2, substr('MySQL',-4,3) column3, substr('MySQL',-5)  column4

5.使用 locate(s1,str) 匹配子字符串 s1 在字符串 str 中第一次出现的位置。

代码:select locate('my','MySQL'),locate('SQL','MySQLMySQL'),locate('sy','MySQL')

6.使用 elt(n,s1,s2,…,sn) 返回指定位置的字符串。

代码:select  elt(3,'ie','ef','chrome','360'),elt(3,'ie','ef')

7.使用 field(s,s1,s2,…sn) 返回指定字符串位置。

代码:select field( ' M y' , ' my1' , ' mY 2' , ' my' , ' M yS Q L' ) column1, field( ' M y' , ' myS Q L' , ' php' ) column2,field(null,'s1','s2') colmn3

以上是关于(新人必看)MySQL的函数了解一下!!!(数学函数控制流函数字符串函数)的主要内容,如果未能解决你的问题,请参考以下文章

(新人必看)MySQL的函数了解一下!!!(数学函数控制流函数字符串函数)

(新人必看)MySQL的函数了解一下!!!(日期和时间函数系统信息函数加密函数)

(新人必看)MySQL的函数了解一下!!!(日期和时间函数系统信息函数加密函数)

(新人必看)MySQL的函数了解一下!!!(日期和时间函数系统信息函数加密函数)

leetcode 395. 至少有 K 个重复字符的最长子串----双指针篇5,滑动窗口篇4,新人理解递归必看篇!!

mysql 从源码解读.frm文件构成