- 函数是指一段可以直接被另一端程序调用的程序或代码;
3.1 字符串函数
函数 | 功能 |
---|---|
CONCAT(str1,str2,…) | 字符串拼接,将str1、str2等拼接成一个字符串 |
LOWER(str) | 将字符串str全部转为小写 |
UPPER(str) | 将字符串str全部转为大写 |
LPAD(str1,n,str2) | 左填充,将str2填充到str1的左边,使得整个字符串长度为n |
RPAD(str1,n,str2) | 右填充,将str2填充到str1的右边,使得整个字符串长度为n |
TRIM(str) | 去除字符串头尾的空格 |
RTRIM(str) | 去除字符串str右边的空格 |
LTRIM(str) | 去除字符串str左边的空格 |
SUBSTRING(str, start, len) | 返回字符串str从位置start开始的len个长度的字符串(1开始) |
SUBSTRING(str from n1 for n2) | 返回字符串str从位置n1开始的n2个长度的字符串(1开始) |
LENGTH(str) | 返回字符串str的长度 |
LEFT(str, n) | 返回字符串str左边n个字符 |
RIGHT(str,n) | 返回字符串str右边n个字符 |
REPLACE(str,old_str,new_str) | 将字符串str中的字符串old_str替换为字符串new_str |
3.2 数值函数
函数 | 功能 |
---|---|
ABS(x) | 返回x的绝对值 |
CEIL(x) | 向上取整 |
FLOOR(x) | 向下取整 |
MOD(x,y) | 返回x/y的余数 |
RAND() | 返回0~1内的随机数 |
ROUND(x,y) | 返回x的四舍五入的值,保留y位小数 |
3.3 日期函数
函数 | 功能 |
---|---|
CURDATE() | 返回当前日期 |
CURTIME() | 返回当前时间 |
NOW() | 返回当前日期时间 |
YEAR(date) | 返回指定日期date的年份 |
MONTH(date) | 返回指定日期date的月份 |
DAY(date) | 返回指定日期date的天数 |
EXTRACT(type FROM date) | 返回指定日期date的指定类型type(year\month\day) |
DATE_ADD(date, INTERVAL n type) | 返回指定日期date加上n个type时间后的日期 type:包括year、month、day |
DATEDIFF(date1,date2) | 返回日期date1和日期date2之间相隔的天数 |
3.4 流程函数
函数 | 功能 |
---|---|
IF(value, t, f) | 如果value为true,返回t,否则返回f |
IFNULL(value1, value2) | 如果value1不为NULL,返回value1,否则返回value2 |
CASE WHEN value THEN result WHEN value THEN result … [ELSE default] END | 如果value为true,返回对应后面的result, 如果value都不为true,返回default |
CASE expr WHEN value THEN result WHEN value THEN result … [ELSE default] END | 如果expr与value相等,返回对应后面的result, 否则返回default |
3.5 聚合函数
函数 | 功能 |
---|---|
COUNT(column) | 计数,使用count(*)包括含NULL的行,指定列count(column)则不包括含NULL的行 |
SUM(column) | 计算指定列column的总和,忽略值为NULL的行 |
AVG(column) | 计算指定列column的平均值,忽略值为NULL的行 |
MAX(column) | 计算指定列column的最大值,忽略值为NULL的行 |
MIN(column) | 计算指定列column的最小值,忽略值为NULL的行 |
聚合函数中可以使用DISTINCT去除重复项,只计算每一种的值。
3.6 其它函数
函数 | 功能 |
---|---|
CAST(column AS type) | 将指定列column的类型转化为type |
COALESCE(val1, val2, val3,…) | 返回后面列表中第一个不是NULL的val值 |