字符串函数:
函数 | 功能 |
---|---|
CANCAT(S1,S2,…Sn) | 连接 S1,S2,…Sn 为一个字符串 |
LENGTH(str) | 计算字符串长度函数,返回字符串的字节长度 |
LEFT(s,n) | 函数返回字符串 s 最左边的 n 个字符,s=1表示第一个字符 |
RIGHT(s,n) | 函数返回字符串 s 最右边的 n 个字符 |
LOWER(str) | 将字符串str中所有字符变为小写 |
UPPER(str) | 将字符串str中所有字符变为大写 |
LTRIM(str) | 去掉字符串str左侧的空格 |
RTRIM(str) | 去掉字符串str行尾的空格 |
REPLACE(str,a,b) | 用字符串b替换字符串str中所有出现的字符串a |
TRIM(str) | 去掉字符串行尾和行头的空格 |
substr/substring | 截取字符串,返回从指定位置开始的指定长度的字符换 |
reverse(str) | 字符串反转(逆序)函数,返回与原始字符串顺序相反的字符串 |
substring使用示例:
1 | -- 12 6 |
数值函数:
函数 | 功能 |
---|---|
ABS(x) | 返回 x 的绝对值 |
SQRT(x) | 返回 x 的求二次方根 |
CEIL(x)/CEILING(x) | 返回大于 x 的最小整数值 |
FLOOR(x) | 返回小于 x 的最大整数值 |
MOD(x,y) | 返回 x/y 的模 |
RAND() | 返回 0 到 1 内的随机值。传入整数参数时,用来产生重复序列 |
ROUND(x,y) | 返回参数 x 的四舍五入的有 y 位小数的值 |
POW(x,y)/POWER(x,y) | 返回计算x的y次方 |
使用示例:
1 | -- 5 NULL |
日期时间函数:
函数 | 功能 |
---|---|
CURDATE() / current_date() | 当前日期 |
CURTIME() / current_time() | 当前时间 |
NOW() / sysdate() | 当前的日期和时间 |
UNIX_TIMESTAMP(date) | 获取日期date的UNIX 时间戳 |
FROM_UNIXTIME | 将UNIX 时间戳格式化 |
dayofweek | 获取指定日期是一周中是第几天,返回值范围是1~7,1=周日 |
WEEK(date) | 日期 date 为一年中的第几周,返回值的范围是否为 0-52 或 1-53 |
dayofyear | 获取指定曰期是一年中的第几天,返回值范围是1~366 |
YEAR(date) | 日期 date 的年份 |
dayofmonth | 获取指定日期是一个月中是第几天,返回值范围是1~31 |
HOUR(time) | time 的小时值 |
MINUTE(time) | time 的分钟值 |
DATE_FORMAT(date,fmt) | 按字符串 fmt 格式化日期 date 值 |
DATE_ADD(date,INTERVAL expr type)/adddate | 一个日期或时间值加上一个时间间隔的时间值 |
DATE_SUB/subdate | 都是向日期减去指定的时间间隔 |
DATEDIFF(expr,expr2) | 起始时间 expr 和结束时间 expr2 之间的天数 |
使用示例:
1 | -- 2019-09-17 16:13:28 2019-09-17 16:13:28 |
流程函数:
主要指case…when…函数:
函数 | 功能 |
---|---|
IF(expr,v1,v2) | 当 expr 为真是返回 v1 的值,否则返回 v2 |
IFNULL(v1,v2) | v1为空返回v2,否则返回v1 |
case | 多条件判断 |
case语句有2种写法:
:::tips
CASE <表达式>
WHEN <值1> THEN <操作>
WHEN <值2> THEN <操作>
…
ELSE <操作>
END CASE;
CASE
WHEN <条件1> THEN <命令>
WHEN <条件2> THEN <命令>
…
ELSE commands
END CASE;
:::
使用示例:
1 | -- 1 x yes |
聚合函数:
分组时,可以使用聚合函数。
函数 | 功能 |
---|---|
max | 查询指定列的最大值 |
min | 查询指定列的最小值 |
count | 统计查询结果的行数 |
sum | 求和,返回指定列的总和 |
avg | 求平均值,返回指定列数据的平均值 |