我是靠谱客的博主 鲜艳烧鹅,最近开发中收集的这篇文章主要介绍MySQL自学笔记——函数单行函数聚合函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

单行函数

只对一行进行变换,每行返回一个结果

数值函数

函数用法
ABS(X)返回x的绝对值
SIGN(X)返回x的符号,正数返回1,负数返回-1,0返回0
PI()返回圆周率
CEIL(X)  , CEILING(X)返回大于或等于x的最小整数
FLOOR(X)返回小于或等于x的最大整数

LEAST(e1,e2,e3......)

返回列表中的最小值
GREATEST(e1,e2,e3......)返回列表中的最大值
MOD(X,Y)返回x%y
RAND()返回0~1的随机值
RAND(X)

返回0~1的随机值,其中x的值用作种子值,相同的x值会产生相同的随机数

ROUND(X)

返回一个对x的值进行四舍五入之后,最接近x的数

ROUND(X,Y)返回一个对x的值进行四舍五入之后,最接近x的数,并且保留到y位小数
TRUNCATE(X,Y)返回x截断为y位小数的结果
SQRT(X)返回平方根,若x为负数,返回null
POW(X,Y),POWER(X,Y)返回x的y次方
EXP(X)返回e的x次方
LN(X),LOG(x)返回以e为底,x的对数,x<=0时,返回null
LOG10(x)返回以10为底,x的对数,x<=0时,返回null

示例代码:

SELECT RAND(1),RAND(1),RAND(10),RAND(10),ROUND(129.456,-1),TRUNCATE(129.456,-1)
FROM DUAL

结果截图:

字符串函数

函数用法
ASCII()返回s中第一个字符的ASCII码
CHAR_LENGTH(S)返回s的字符数
LENGHT(s)返回s的字节数
CONCAT(s1,s2,s3...)链接s1,s2,s3...
CONCAT_WS        (x,s1,s2,s3...)同上,但是每个字符串之间要加上x
INSERT(str,idx,len,replacestr)将str从idx开始,len个字符长的子串替换为replacestr
REPLACE(str,a,b)用b替换str中所有的a
UPPER(s)s中所有的字母改为大写
LOWER(s)s中所有的字母改为小写
LEFT(str,n)返回str最左边n个字符
RIGHT(str,n)返回str最右边n个字符
LPAD(str,len,pad)用pad对str最左边进行填充,直到str的长度为len个字符
RPAD(str,len,pad)用pad对str最右边进行填充,直到str的长度为len个字符
LTRIM(s)去掉字符串s左侧的空格
RTRIM(s)去掉字符串s右侧的空格
TRIM(s)去掉字符串s开始与结尾的空格
TRIM(s1 FROM s)

去掉字符串s开始与结尾的s1

TRIM(LEADING s1 FROM s)去掉字符串s开始处的s1
TRIM(TRAILING s1 FROM s)去掉字符串s结尾处的s1
REPEAT(str,n)返回str重复n次的结果
SPACE(n)返回n个空格
STRCMP(s1,s2)比较s1,s2的ASCII码值大小
SUBSTR(s,index,len)返回从s的index位置其len个字符
LOCATE(substr,str)返回substr在str中首次出现的位置,如果未找则到返回0
ELT(m,s1,s2,...,sn)返回指定位置的字符串,如果m=1,则返回s1,其余类似
FIELD(s,s1,s2,...,sn)返回s在字符串列表中第一次出现的位置
FIND_IN_SET(s1,s2)

返回s1在s2中出现的位置(s2是一个以逗号分隔的字符串)

REVERSE(s)返回s反转后的结果
NULLIF(value1,value2)比较两个字符串,如果相等返回NULL,否则返回value1

 注意:在MySQL中,字符串的索引是从1开始

日期和时间函数

函数用法
CURDATE()

返回当前日期(年月日)

CURTIME()返回当前日期(时分秒)
NOW()返回当前系统日期和时间
UTC_DATE()返回世界标准时间的日期
UTC_TIME()返回世界标准时间的时间
YEAR(date) / MONTH(date) / DAY(date)返回具体的日期值
HOUR(time) / MINUTE(time) / SECOND(time)返回具体的时间值
MONTHNAME(date)返回月份: January, ...
DAYNAME(date)返回星期几: MONDAY, TUESA....SNDA
WEEKDAY(date)返回周几,注意,周1是0,周2是1,。。。周日是6
QUARTER(date)返回日期对应的季度,范围为1 ~4
WEEK(date),WEEKOFYEAR(date)返回一年中的第几周
DAYOFYEAR(date)返回日期是一年中的第几天
DAYOFMONTH(date)返回日期位于所在月份的第几天
DAYOFWEEK(date)返回周几,注意:周日是1,周一是2,。。。周六是7

流程控制函数

函数作用
lF(value,value1,value2)如果value的值为TRUE,返回value1, 否则返回value2
IFNULL(value1, value2)如果value1不为NULL,返回value1, 否则返value2
CASE WHEN条件1 THEN结果1 WHEN条件2 THEN结果2... [ELSE result n] END相当于Java的if...else if...else...
CASE expr WHEN 常量值1 THEN 值1 WHEN 常量值1 THEN 值1...[ELSE 值n] END相当于Java的switch...case...

加密与解密函数

函数用法
MD5(str)返回字符串str的md5加密后的值,也是一种加密方式。若参数为NULL,则会返回NULL
SHA(str)从原明文密码str计算并返回加密后的密码字符串,当参数为NULL时,返回NULL。SHA加密算法比MD5更加安全。
ENCODE(value,password seed)返回使用password_ seed作为加密密码加密value
DECODE(value,password_ seed)返回使用password seed作为加密密码解密value

聚合函数

作用于一组数据,并对一组数据返回一个值

AVG()/SUM()

作用:求平均值/总和

注意:只适用于数值类型的字段,不计算为NULL的值

MIX()/MIN()

作用:求最大值/最小值

适用于字符串类型、数值类型、日期时间类型的字段

COUNT()

作用:计算指定字段在查询结构中出现的个数

注意:不计算为NULL的值

如果要查询表中有多少条记录,可以使用COUNT(*),COUNT(1)

GROUP BY()

注意

SELECT语句中出现的非组函数的字段必须声明在GROUP BY中。反之,GROUP BY中声明的字段可以不出现在SELECT中。

GROUP BY声明在FROM后面、WHERE后面,ORDER BY前面、LIMIT前面

HAVING

如果过滤条件使用了聚合函数,则需要HAVING来替换WHERE。

当过滤条件中没有聚合函数时,则过滤条件声明在WHERE或HAVING中都可以。但是声明在WHERE中效率高。

HAVING必须声明在GROUP BY后面

最后

以上就是鲜艳烧鹅为你收集整理的MySQL自学笔记——函数单行函数聚合函数的全部内容,希望文章能够帮你解决MySQL自学笔记——函数单行函数聚合函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部