一,数学函数
函数名 | 函数表达式 | 取值 | 返回结果 |
绝对值 | abs(x) | abs(-2.5),abs(17) | 2.5,17 |
圆周率 | PI() | PI() 默认6位 | 3.141593 |
平方根 | sqrt(x) | sqrt(16) ,sqrt(81) sqrt(-81) | 4,9 NULL |
求余 | mod(x,y) | mod(31,8), mod(45.5,6) | 7 3.5 |
获取整数 | ceil(x) 或ceiling(x) floor(x) | ceil(-3.15) ,ceiling(3.68) floor(-3.15),floor(3.68) | -3 ,4 (不小于x) -4,3 ( 不大于x) |
获取随机数 | rand() rand(x) | rand() != rand() rand(10) =rand(10) != rand(11) | 生成0~1之间的不同浮点数 产生重复的序列 |
近似值函数 | round(x) round(x,y) truncate(x,y) | round(-1.35),round(3.84) round(-1.35,1),round(3.84,1) truncate(-1.35,1),truncate(3.84,1) round(-15.8,-1),truncate(-36.84,-1) | -1,4 只保留整数部分 -1.4 ,3.8 保留y 位小数 -1.3,3.8 直接截取y 位 -20 ,-30 |
符号函数 | sign(x) | sign(-21),sign(0),sign(21) | -1 ,0,1 返回参数符号 |
幂运算 | pow(x,y) power(x,y) exp(x) | pow(2,3) ,pow(2,-2) power(x,y)=pow(x,y) exp(2) ,exp(-2) | 8 ,0.25 e 为底的2次方, e^2 的倒数 |
对数运算函数 | log(x) log10(x) | log(3),log(-3) log10(2),log10(100) | e 的对数,NULL(负数没有对数) 10 的对数,2 |
角度与弧度 | radians(x) degrees(x) | radians(90),radians(180) degrees(PI()),degrees(PI()/2) | Π/2, Π 将角度转换为弧度 180,90 将弧度转换为角度 |
正弦,反正弦 | sin(x) x为弧度值 asin(x) | sin(PI()) asin(0) | 0 计算的正弦值 PI() 反正弦值 范围 -1~1,之外NULL |
余弦,反余弦 | cos(x) x为弧度值 acos(x) | cos(0) acos(1) | 1 计算余弦值 0 反余弦值 范围-1~1NULL |
正切 , 反正切 余切 | tan(x) x为弧度值 atan(x) cot(x) | tan(PI()/4) atan(1) cot(PI()/4) 与tan(PI()/4) 互为倒数 | 1 计算正切值 0.7853 计算反正切值 1 计算余切值 与 |
二,字符串函数
函数名 | 函数表达式 | 取值 | 返回结果 |
字符串字符数 | char_length(str) | char_length('zh国') char_length('stgd') | 3,多字节字符算单字符 4 |
字符串长度 | length(str) | length('zh国') length('stgd') | 5 多字节字符按字节算,汉字3字节 4 |
合并字符串 | concat(s1,s2...) concat_ws(x,s1,s2...) | concat('mysql','5.7') concat_ws(‘-’,‘mysql’,'5.7') | 返回链接后的字符串,有NULL,返回NULL,有二进制字符串,返回二进制字符串 x 为链接分隔符,如分隔符为NULL,返回NULL,如分隔符后有NULL,NULL省略 |
指定替换字符串 | insert(s1,x,len,s2) | insert('quest',2,2,'what') insert('quest',-1,2,'what') insert('quest',2,6,'what') insert('quest',2,null,'what') | 'qwhatst' 用s2替换从x位置开始长度为len 字符 'quest' x超出原字符串长度返回原字符 'qwhat' len超出原字符串长度从x位置开 始取所有字符 null 参数任一有NULNULL |
大小写转换 | lower(str) lcase(str) upper(str) ucase(str) | lower('LUCY') upper('lucy') | 'lucy' 将大写全部转换为小写 'LUCY' 将小写全部转换为大写 |
指定长度 | left(s,n) right(s,n) | left('football',5) right('football',4) | footb 左边开始长度为5的字符串 ball 右边开始长度为4的字符串 |
填充字符串 | lpad(s1,len,s2) rpad(s1,len,s2) | lpad('hello',4,'?') lpad('hello',7,'?') rpad('hello',4,'?') rpad('hello',7,'?') | hell s1>len 只返回len长度的字符串 ??hello s1<len 左边用s2 填充至len 长度 hell s1>len 只返回len长度的字符串 hello?? s1<len 右边用s2 填充至len 长度 |
删除空格 | ltrim(s) rtrim(s) trim(s) | ltrim(' hello ') rtrim(' hello ') trim(' hello ') | 'hello ' 删除左边空格,右边不删除 ' hello' 删除右边空格,左边不删除 'hello' 删除两边空格 |
删指定字符串 | trim(s1 from s) | trim('xy' from 'xykollxyxy') | koll 从s 中删除两边的s1字符串 |
重复生成 | repeat(s,n) | repeat('my',3) | 'mymymy' s 字符串重复n 次,s,n 任一为NULL,返回NULL,n<=0,返回空字符串 |
空格 | space(n) | space(5) | ' ' 返回由5个空格组成的字符串 |
全部替换 | replace(s,s1,s2) | replace('fagag','a','ww') | 'fwwgwwg' 返回s2 替代s 中的所有s1 |
比较字符串 | strcmp(s1,s2) | strcmp('tex','tex') strcmp('tex1','tex') strcmp('tex','tex1') | 0 相同返回0 1 s1>s2 返回1 -1 s1<s2 返回-1 |
获取子串 | substring(s,n,len) mid(s,n,len) | substring('breakfast',5) substring('breakfast',5,3) substring('breakfast',-3) substring('breakfast',-4,2) | 'kfast' 从n位置取后边所有的字符串 ‘kfa’ 从n位置取后边 长度为len 的字符串 ‘ing’ 从右边n位置取后边 的字符串 ‘fa’ 从右边n位置取后边 长度为len 的字符串 |
匹配子串开始位置 | locate(str1,str) position(str1 in str) instr(str,str1) | locate('ball','football') position('ball','football') instr('ball','football') | 5 str1 从str 的第几个位置开始 5 str1 从str 的第几个位置开始 5 str1 从str 的第几个位置开始 |
字符串逆序 | reverse(s) | reverse('abc') | 'cba' 返回的字符串与s顺序相反 |
指定位置的字符串 | elt(n,str1,str2,...strn) | elt(3,'a','b','c','d') | 'c' n=1 返回str1 n=strn 返回strn n<1 或n>strn返回NULL |
指定字符串位置 | field(s,s1,s2,...) | field('hi','fis','sg','hi','yr') field('hi','fis','sg','hir','yr') | 3 s在列表s1,s2,... 中出现的位置 0 s 在列表s1,s2,... 中不存在返回0 s 为NULL 时返回0 |
返回子串位置 | find_in_set(s1,s2) | find_in_set('hi','fis,sg,hi,yr') | 3 作用同field(), 不同点:1,s2 为空字符串返回0 2,任一参数为NULL返回NULL 3,s1包含逗号将不能运行 |
三,时间日期函数及其它参考CSDN