欢迎各位点赞👍评论✍收藏⭐
目录
1. 聚合函数
在数据库中有常见的自带的一些函数可以帮助我们进行一些查询
1.1 常见聚合函数
适用于非数值类型和数值类型
COUNT -- 返回查询的数据的数量
适用于数值类型
SUM -- 返回查询的数据的总和
AVG -- 返回查询的数据的平均值
MAX -- 返回查询的数据的最大值
MIN -- 返回查询的数据的最小值
1.1.1 COUNT
- 查询 exam 表中数据的数量
mysql> select count(*) from exam;
- 不计算 null 的数据
mysql> select count(english) from exam;
1.1.2 SUM
- 求学生数学成绩的总分
mysql> select sum(math) from exam;
1.1.3 AVG
- 求英语成绩平均值
mysql> select round(avg(english),2) from exam;
1.1.4 MAX
- 求语文成绩的最大值
mysql> select max(chinese) from exam;
2. Group by 分组
在数据分析中,我们还可以进行分组统计数据的数量,语法和前面相似
2.1 分组示例
创建一张公司的工资表(Payroll),包括,id,name,role,salary
-- 使用库
use store;
-- 删除
drop table Payroll;
-- 创建表
create table if not exists Payroll (
id int,
name varchar(20) not null ,
role varchar(20) not null ,
salary decimal(10,2) not null
);
-- 插入
insert into Payroll values
(1,'张三','老板',2000000.00),
(2,'李四','老板',1000000.00),
(3,'王五','经理',40000.00),
(4,'赵六','经理',50000.00),
(5,'沈十','员工',8000.00),
(6,'李九','员工',10000.00),
(7,'张八','员工',9000.00),
(8,'陈七','清洁工',5000.00);
- 统计每个角色的人数
mysql> select role , count(*) from payroll group by role;
- 统计每个角色的平均工资,最高工资,最低工资
mysql> select role,round(avg(salary),2) 平均工资,round(max(salary),2) 最高工资,round(min(salary),2) 最低工资 from payroll group by role;
3. having 语句
当我们对 Group by 的结果进行过滤时,不能用 where ,要使用 having 语句
3.1 having 过滤结果
- 求平均工资低于1万的角色
mysql> select role,avg(salary) from payroll group by role having avg(salary) < 10000;
3.2 having 和 where 的区别
- having 对于分组的结果进行条件过滤
- where 对于表中数据的条件过滤
4. 内置函数 (常用)
4.1 日期函数
函数 说明
now() 返回当前日期和时间
4.2 字符串函数
函数 说明
char_length() 返回字符串的长度
length() 返回字符串的字节数
4.3 数学函数
函数 说明
ABS() 绝对值
CEIL(X) 返回不小于 X 的最小整数
FLOOR(X) 返回不大于 X 的最大整数
CONV() 不同进制转换
5. 小结
以上就是对MySQL增删查改的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持