函数可以帮助用户便捷的完成很多事情,因此,MySQL中有很多内置的函数:字符串函数、日期函数、数值函数等
一、字符串函数
字符串函数是最常用的一种函数,以下列出常用的字符串函数,以供参考;
函数 | 功能 |
CONCAT(s1,s2...sn) | 字符串 s1,s2 等多个字符串合并为一个字符串 |
INSERT(s1,x,len,s2) | 字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串 |
LOWER(s) | 将字符串 s 的所有字母变成小写字母 |
UPPER(s) | 将字符串转换为大写 |
LEFT(s,n) | 返回字符串 s 的前 n 个字符(最左边的n个字符) |
RIGHT(s,n) | 返回字符串 s 的后 n 个字符(最右边的n个字符) |
LPAD(s1,len,s2) | 在字符串 s1 的开始处填充字符串 s2,使字符串长度达到 len |
RPAD(s1,len,s2) | 在字符串 s1 的结尾处添加字符串 s2,使字符串的长度达到 len |
LTRIM(s) | 去掉字符串 s 开始处的空格 |
RTRIM(s) | 去掉字符串 s 结尾处的空格 |
TRIM(s) | 去掉字符串 s 开始和结尾处的空格 |
REPEAT(s,n) | 将字符串 s 重复 n 次 |
REPLACE(s,s1,s2) | 将字符串 s2 替代字符串 s 中的字符串 s1 |
REVERSE(s) | 将字符串s的顺序反过来 |
STRCMP(s1,s2) | 比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1 |
SUBSTRING(s, start, length) | 从字符串 s 的 start 位置截取长度为 length 的子字符串 |
二、数值函数
MySQL中常见的数值函数 | ||
序号 | 函数 | 功能 |
1 | ABS(x) | 返回 x 的绝对值 |
MOD(x,y) | 返回 x 除以 y 以后的余数 | |
SQRT(x) | 返回x的平方根 | |
POW(x,y) | 返回 x 的 y 次方 | |
EXP(x) | 返回 e 的 x 次方 | |
LOG(x) | 返回自然对数(以 e 为底的对数) | |
2 | MAX(expression) | 返回字段 expression 中的最大值 |
MIN(expression) | 返回字段 expression 中的最小值 | |
SUM(expression) | 返回指定字段的总和 | |
COUNT(expression) | 返回查询的记录总数,expression 参数是一个字段或者 * 号 | |
AVG(expression) | 返回一个表达式的平均值,expression 是一个字段 | |
3 | CEIL(x) | 返回大于或等于 x 的最小整数 |
FLOOR(x) | 返回小于或等于 x 的最大整数 | |
ROUND(x) | 返回离 x 最近的整数 | |
TRUNCATE(x,y) | 返回数值 x 保留到小数点后 y 位的值(与 ROUND 最大的区别是不会进行四舍五入) | |
4 | RAND() | 返回 0 到 1 的随机数 |
三、日期与时间函数
MySQL中常见的日期和时间函数 | |
函数 | 功能 |
CURDATE() | 返回当前日期 |
CURTIME() | 返回当前时间 |
NOW() | 返回当前日期和时间 |
UNIX_TIMESTAMP(date) | 返回日期date的unix时间戳 |
FROM_UNIXTIME | 返回unix时间戳的日期值 |
YEAR(date) | 返回年份 |
MONTH(date) | 返回日期date中的月份值,1 到 12 |
MONTHNAME(date) | 返回日期当中的月份名称,如 Janyary |
WEEK(date) | 计算日期 date 是本年的第几个星期,范围是 0 到 53 |
HOUR(time) | 返回 time中的小时值 |
MINUTE(time) | 返回 time 中的分钟值 |
SECOND(time) | 返回 time 中的秒钟值 |
DATE_FORMAT(date,fmt) | 按表达式 fmt的要求显示日期 date |
DATE_ADD(date,INTERVAL expr type) | 计算起始日期 date 加上一个时间段后的日期 |
DATEDIFF(date1,date2) | 计算日期 date1->date2 之间相隔的天数 |
四、流程函数
流程函数是很常用的一类函数,用户可以使用这类函数在一个SQL语句中实现条件选择,可提高语句的效率。
MySQL中的流程函数 | |
函数 | 功能 |
IF(value,t,f) | 如果value是真,返回t;否则返回f |
IFNULL(value1,value2) | 如果value1不为空,返回value1;否则返回value2 |
CASE WHEN[value1]THEN[result]…ELSE[default]END | 如果value1是真,返回result1;否则返回default |
CASE[expr]WHEN[value1]THEN[result]…ELSE[default]END | 如果expr等于value1,返回result1;否则返回default |
五、其他常用函数
MySQL中的其他常用函数 | |
函数 | 功能 |
DATABASE() | 返回当前数据库名 |
VERSION() | 返回数据库的版本号 |
USER() | 返回当前用户 |
INET_ATON(IP) | 返回ip地址的数字表达式 |
INET_NTOA(num) | 返回数字代表的ip地址 |
PASSWORD(str) | 返回字符串str的加密版本 |
MD5 | 返回字符串的MD5值 |