目录
- MYSQL函数集合(select+函数)
- 1、计算数值函数
- 2、字符串函数
- 3、时间函数
- 4、系统信息函数
- 5、加密函数
- 6、窗口函数
- 1.窗口函数语法(OLAP函数)
- 2.窗口函数有以下功能
- 3.注意事项
MYSQL函数集合(select+函数)
1、计算数值函数
含义 | SQL函数 |
统计函数 | count(*/列名/1) |
平均分 | avg(x) |
最大值 | max(x) |
最小值 | min(x) |
总和 | sum(x) |
返回绝对值 | abs(x) |
返回 >= 最小整数 | cell(x) |
返回 <= 最大整数 | floor(x) |
返回0~1之间随机数 | rand() |
返回x符号(x为负数/0/正数——返回-1/0/1) | sing(x) |
圆周率 | PI() |
返回x保留小数点后d位 | truncate(x,d) |
返回x保留小数点后d位,不足补零 | format(x,d) |
返回a的b次方 | pow(a,b) |
返回平方根 | sqrt(x) |
返回e 的x次方 | exp(x) |
返回x%y余数 | mod(x,y) |
角度转换为弧度 | radians(x) |
弧度转换为角度 | degrees(x) |
正弦值 | sin(radians(x)) |
条件判断函数 | SELECT IF(1>0,‘正确’,‘错误’) |
2、字符串函数
含义 | 字符串函数 |
返回字符串的字符数 | char_length/length |
合并字符串 | concat |
合并时,每个字符加 @ | concat_ws(’@’,a,b) |
字符串替换 | insert(‘字符串’,开始位置,终止位置,‘替换数据’) |
字母转为大写 | upper(x) |
字母转为小写 | lower(x) |
返回前x位 | left(‘ ’,x) |
返回后x位 | right(‘ ’,x) |
去除开始空格 | LTRIM(’ ') |
去除结尾空格 | RTRIM(’ ') |
去除前后空格 | TRIM(’ ') |
将字符串重复x次 | repeat(x) |
字符替换 | replace(‘字符串’,‘要替换的值’,‘替换值’) |
比较两个字符串 | strcmp(x,y) |
获取a的位置 | instr(’’,‘a’) |
反转字符串 | reverse(x) |
返回第n个字符串 | ELT(n,’’,’’,’’,’’) |
3、时间函数
含义 | 时间函数 |
当前日期 | curdate() |
当前时间 | curtime() |
当前日期时间 | now() |
获取UNIX时间戳 | nuix_timestamp() |
获取时间戳 | nuix_timestamp(‘x’) |
将时间戳转为普通格式 | form_timestamp(x) |
返回UTC 日期 | UTC_DATE() |
返回UTC 时间 | UTC_TIME() |
获取日期中的月份——数字 | month(’ ') |
获取日期中的月份名称——英文 | monthname(’ ') |
获取日期中的星期——英文 | dayname(’ ') |
获取日期中的星期名称——数字,以周日开始0-7 | dayofweek(’ ') |
计算日期是本年的第几天 | dayofyear(’ ') |
计算本年第几个星期——0-53 | week(’ ') |
计算本月第几天 | dayofmonth(’ ') |
计算日期是第几季度——1-4 | quarter(’ ') |
小时 | HOUR(‘ ’) |
分钟 | MINUTE(’ ‘) |
秒 | SECOND(’ ‘) |
按照指定返回 | EXTRACT(指定格式 FROM ‘ ’) |
将时分秒格式转化为秒 | time_to_sec(’ ‘) |
将秒转化为时分秒格式 | sec_to_time(’ ‘) |
计算距离(0000-01-01)天数 | to_days(’ ‘ ) |
计算两个时间相隔天数 | datediff(终止时间,开始时间) |
累加数值到 时间中 默认是天 | ADDDATE(‘2021-08-03 11:11:11’,3) |
累减数值到 时间中 默认是天 | SUBDATE(‘2021-08-03 11:11:11’,3) |
加一秒 | ADDTIME(‘16:12:25’,1) |
减一秒 | SUBTIME(‘16:12:25’,1) |
4、系统信息函数
含义 | 系统信息函数 |
返回数据库版本号 | version() |
返回服务器连接数 | connection_id() |
当前数据库名称 | DATABASE() |
当前用户 | USER() |
当前用户 | SYSTEM_USER() |
当前用户 | SESSION_USER() |
当前用户 | CURRENT_USER() |
5、加密函数
含义 | 加密函数 |
加密 | md5(’’) |
加密 | password(’’) |
加密 | encode(’’,‘加密方式’) |
对encode解密 | decode(’’,‘加密方式’) |
6、窗口函数
1.窗口函数语法(OLAP函数)
select *,
<窗口函数> over (partition by <用于分组的列名>
order by <用于排序的列名>[DESC 降序|ASC 升序])
from 班级表
<窗口函数>的位置,可以放以下两种函数:
- 专用窗口函数,比如rank, dense_rank, row_number等
- 聚合函数,如sum,avg, count, max, min等
2.窗口函数有以下功能
1)同时具有分组(partition by)和排序(order by)的功能
2)不减少原表的行数,所以经常用来在每组内排名
3.注意事项
- 窗口函数原则上只能写在select子句中
- rank, dense_rank, row_number区别
- rank:数值相同,排名相同,下一个按次序排
- dense_rank:数值相同,排名相同,下一个名次加一
- row_number:数值相同,排名不同,按次序排列