(新人必看)MySQL的函数了解一下!!!(数学函数控制流函数字符串函数)
Posted 影之神
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(新人必看)MySQL的函数了解一下!!!(数学函数控制流函数字符串函数)相关的知识,希望对你有一定的参考价值。
一、数学函数
- 数学函数是用来处理数值数据方面的运算,mysql 中主要的数学函数有绝对值函数、三角函数、对数函数和随机函数等。
- 使用数学函数的过程中,如果有错误发生,该函数将返回 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)
二、控制流函数
- 控制流函数也称作“条件判断函数”,其根据满足的条件不同,执行相应的流程。
- 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的函数了解一下!!!(日期和时间函数系统信息函数加密函数)