字符串函数:
| 函数 | 功能 |
|---|---|
| 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 | 求平均值,返回指定列数据的平均值 |