MySQL 函数是 MySQL 数据库提供的内部函数,用户可以直接使用函数名调用函数快速的处理数据。MySQL 函数包括数值型函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数和加密函数等。
一、数值型函数
数学函数主要用于处理数字。这类函数包括绝对值函数、平均值函数、随机数的函数等
ABS(X)
返回X的绝对值
SQRT(X)
返回X的二次方根值
MOD(X,Y)
求余函数,返回 x 被 y 除后的余数,对于带有小数部分的数值也起作用,它返回除法运算后的余数
CEIL(X)、 CEILING(X)
向上取整
FLOOR(X)
向下取整
RAND()
随机生成一个在 0 和 1 之间的数
RAND(X)
传入一个整数作为参数时,该函数产生重复随机数
ROUND(x)
返回最接近于参数 x 的整数
**ROUND(X,Y) **
函数对参数X进行四舍五入,参数Y表示返回值保留小数点后多少位 ,四舍五入的位置为Y设定的位数
SIGN(X)
返回参数的符号,传参为负数时,返回结果为-1;传参为0时,返回结果为0;传参为正数时,返回结果为1
二、字符串函数
LENGTH(str)
返回字符串的字节长度,一个汉字是 3 个字节,一个数字或字母是一个字节
CONCAT(str1,str2,...)
拼接多个字符串,若其中一个参数为 NULL,则返回值为 NULL
INSERT(str,pos,len,newstr)
str-原字符串;pos-替换值的起始位置;len-从起始位置开始向后的len个字符长的字符;newstr-替换值
①若 pos超过字符串长度,则返回值为原始字符串
②若 len 的长度大于字符串的长度,则从位置 str至末尾开始替换
③若任何一个参数为 NULL,则返回值为 NULL
LOWER(str)
将字母转换为小写
UPPER(str)
将字母转换为大写
**LEFT(str,len) **
左截取,返回字符串str左边的len长度字符串
RIGHT(str,len)
右截取,返回字符串str右边的len长度字符串
TRIM(str)
去除字符串首尾空格
LTRIM(str)
去除前空格
RTRIM(str)
去除后空格
REPLACE(str,from_str,to_str)
使用to_str的值替换字符串str中from_str的值
SUBSTRING(str FROM pos FOR len)、SUBSTRING(str,pos,len)
str-截取字符串;pos-起始字符串位置;len-从起始位置开始往后的len长度字符串
SUBSTRING(str FROM pos)、 SUBSTRING(str,pos)
返回字符串str的pos位置至末尾的所有字符串
如果pos为负数,则起始于末尾,即倒数第 n 个字符,而不是字符串的开头位置
三、日期和时间函数
CURDATE()、CURRENT_DATE()
获取系统当前日期
CURTIME()、CURRENT_TIME()
获取系统当前日期
NOW()、SYSDATE()
获取当前日期时间
UNIX_TIMESTAMP()
获取UNIX时间戳
FROM_UNIXTIME(unix_timestamp)
将 UNIX 时间戳转换为普通格式时间
MONTH(date)
返回传参 date 对应的月份,范围为 1~12
MONTHNAME(date)
返回日期 date 对应月份的英文全名
DAYNAME(date)
返回 date 对应的工作日英文名称
DAYOFWEEK(date)
返回 date 对应的一周中的索引(位置)。1 表示周日,2 表示周一,……,7 表示周六
WEEK(date)
查询指定日期date是一年中的第几周
DAYOFYEAR(date)
返回指定日期date在一年中的第几天,范围为 1~366
DAYOFMONTH(date)
返回指定日期date在一个月中是几天,范围为 1~31
YEAR(date)
返回指定日期date的所属年份,如果日期为空,则返回0
TIME_TO_SEC(time)
将参数 time 转换为秒数的时间值,转换公式为“小时 ×3600+ 分钟 ×60+ 秒”
SEC_TO_TIME(seconds)
将秒数转换为时间,与TIME_TO_SEC(time)函数作用相反
DATE_ADD(date,INTERVAL expr unit)、ADDDATE(date,INTERVAL expr unit)
向日期date增加指定的时间间隔
DATE_SUB(date,INTERVAL expr unit)、SUBDATE(date,INTERVAL expr unit)
向日期date减去指定的时间间隔
ADDTIME(expr1,expr2)
在时间参数expr1上增加指定时间expr2,并返回增加时间后的值
SUBTIME(expr1,expr2)
在时间参数expr1上减去指定时间expr2,并返回减去时间后的值
DATEDIFF(expr1,expr1)
获取两个日期之间的间隔,参数expr1-参数expr2
DATE_FORMAT(date,format)
格式化参数date,按照format指定的格式显示date值
格式符号有以下多种,多个格式符号可进行拼接使用
格式符号说明%a工作日的缩写名称(SunSat)%b月份的缩写名称(Jan…Dec)%c月份,数字形式(012)%D带有英语后缀的该月日期(0th, 2st, 3nd,…)%d该月日期,数字形式(0031)%e该月日期,数字形式((031)%f微秒(000000 …999999)%H以 2 位数表示 24 小时(0023)%h, %I以 2 位数表示 12 小时(0112)%i分钟,数字形式(0059)%j—年中的天数(001366)%k以 24 小时(023)表示%l以12小时(112)表示%M月份名称(JanuaryDecember)%m月份,数字形式(0012)%p上午(AM) 或下午(PM)%r时间,12小时制(小时 (hh): 分钟 (mm) : 秒数 (ss) 后加 AM 或 PM)%S, %s以 2 位数形式表示秒(0059)%T时间,24 小时制(小时 (hh): 分钟 (mm): 秒数 (ss))%U周(0053),其中周日为每周的第一天%u周(0053),其中周一为每周的第一天%V周(0153),其中周日为每周的第一天,和%X同时使用%v周(01~53),其中周一为每周的第一天,和%x同时使用%W星期标识(周日、周一、周二…周六)%w—周中的每日(0= 周日…6= 周六)%X该周的年份,其中周日为每周的第一天,数字形式,4 位数,和%V同时使用%x该周的年份,其中周一为每周的第一天,数字形式,4位数,和%v同时使用%Y4 位数形式表示年份%y2 位数形式表示年份%%%一个文字字符
WEEKDAY(date)
返回date对应的一周工作日的索引。0 表示周一,1 表示周二,……,6 表示周日
四、聚合函数
MAX(expr)
查询指定列expr的最大值
MIN(expr)
查询指定列expr的最小值
COUNT(expr)
统计查询结果行数,一般为两种使用方式
- COUNT(*) 计算表中总的行数,无论某列有数值或者为空值。
- COUNT(字段名)计算指定列expr下总的行数,计算时将忽略空值的行。
SUM(expr)
求和,返回指定列expr的总和
AVG(expr)
求平均值,返回指定列expr的平均值
五、MySQL 流程控制函数
IF(expr1,result1,result2)
判断,流程控制,表达式 expr1 得到不同的结果,当 expr1 为真是返回 result1 的值,否则返回 result2的值.
IFNULL(expr1,expr2)
判断是否为空,expr1不为null,则返回expr1的值,否则返回expr2的值
CASE
搜索语句,语法:
CASE case_value
WHEN when_value THEN
statement_list
ELSE
statement_list
END CASE;
版权归原作者 lemon_linaa 所有, 如有侵权,请联系我们删除。