本文最后更新于 2024年12月5日
MySQL函数分为两种: 单行函数:做处理 ,分组函数:做统计
1.单行函数
字节数
查看客户端字符集
字符串连接 大写 小写
索引从1开始,从某一位开始的截取 字符长度
从某一索引开始,截取某段长度 字符长度
返回起始索引 如果找不到返回0
去前后空格
去掉首尾的o
指定字符左填充到指定长度,如果超过,右边的被截断
指定字符右填充到指定长度,如果超过,右边的被截断
替换
数学函数
ROUND(x) 四舍五入
ROUND(x, y) 小数保留
上取整,返回大于等于参数的最小整数
下取整,返回小于等于参数的最大整数
截断
%:余数
日期时间函数
字符通过指定格式转换成日期
流程控制函数
2.分组函数
分组函数用作统计,又叫组函数,聚合函数,统计函数
求和,忽略空值
平均,忽略空值
最大最小值,忽略空值
count函数
计算非空的值的个数,myisam下 COUNT()效率最高,INNODB下 COUNT() COUNT(1) 效率差不多,COUNT(字段)效率最低。
可以用来查询总行数,某一列一个字段有值就统计上
加上常量值,相当于表中添加一列,可以用来查询总行数
DISTINCT 去重后统计
分组查询
和分组函数一同查询的字段要求是group by 后的字段
每个部门的平均工资
工种最高工资
每个领导下有奖金的员工的最高工资(分组前的筛选)
哪个部门的员工数量大于2(分组后的筛选:HAVING)
每个工种有奖金的员工最高工资大于12000的工种编号和最高工资
领导编号大于102 的员工最低工资大于5000的 领导
按表达式筛选
按员工姓名长度分组,查员工个数大于5的姓名长度有几个
多个字段分组
每个部门每个工种的平均工资
每个部门每个工种的平均工资中大于10000的
查各工种平均最大最小和总和
3.自定义函数
函数和存储过程的区别
函数只能有一个返回,而且必须有返回,存储过程适合批量插入,更新,函数适合处理数据后,得到一个结果,适合查询。
创建
- 调用
- 查看函数
- 删除函数
- 循环结构
- 循环控制语句:
ITERATE
(继续,结束本次继续下次)
LEAVE
(break,跳出所在循环)