【MySQL 数据库】增删查改操作CRUD(下)

🔥 博客主页**🔥** :【 坊钰_CSDN博客

欢迎各位点赞**👍** 评论**✍收藏⭐**

目录

[1. 聚合函数](#1. 聚合函数)

[1.1 常见聚合函数](#1.1 常见聚合函数)

[1.1.1 COUNT](#1.1.1 COUNT)

[1.1.2 SUM](#1.1.2 SUM)

[1.1.3 AVG](#1.1.3 AVG)

[1.1.4 MAX](#1.1.4 MAX)

[2. Group by 分组](#2. Group by 分组)

[2.1 分组示例](#2.1 分组示例)

[3. having 语句](#3. having 语句)

[3.1 having 过滤结果](#3.1 having 过滤结果)

[3.2 having 和 where 的区别](#3.2 having 和 where 的区别)

[4. 内置函数 (常用)](#4. 内置函数 (常用))

[4.1 日期函数](#4.1 日期函数)

[4.2 字符串函数](#4.2 字符串函数)

[4.3 数学函数](#4.3 数学函数)

[5. 小结](#5. 小结)


1. 聚合函数

在数据库中有常见的自带的一些函数可以帮助我们进行一些查询

1.1 常见聚合函数

sql 复制代码
适用于非数值类型和数值类型

COUNT -- 返回查询的数据的数量

适用于数值类型

SUM -- 返回查询的数据的总和

AVG -- 返回查询的数据的平均值

MAX -- 返回查询的数据的最大值

MIN -- 返回查询的数据的最小值

1.1.1 COUNT

  • 查询 exam 表中数据的数量
sql 复制代码
mysql> select count(*) from exam;
  • 不计算 null 的数据
sql 复制代码
mysql> select count(english) from exam;

1.1.2 SUM

  • 求学生数学成绩的总分
sql 复制代码
mysql> select sum(math) from exam;

1.1.3 AVG

  • 求英语成绩平均值
sql 复制代码
mysql> select round(avg(english),2) from exam;

1.1.4 MAX

  • 求语文成绩的最大值
sql 复制代码
mysql> select max(chinese) from exam;

2. Group by 分组

在数据分析中,我们还可以进行分组统计数据的数量,语法和前面相似

2.1 分组示例

创建一张公司的工资表(Payroll),包括,id,name,role,salary

sql 复制代码
-- 使用库
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);
  • 统计每个角色的人数
sql 复制代码
mysql> select role , count(*) from payroll group by role;
  • 统计每个角色的平均工资,最高工资,最低工资
sql 复制代码
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万的角色
sql 复制代码
mysql> select role,avg(salary)  from payroll group by role having avg(salary) < 10000;

3.2 having 和 where 的区别

  • having 对于分组的结果进行条件过滤
  • where 对于表中数据的条件过滤

4. 内置函数 (常用)

4.1 日期函数

sql 复制代码
  函数                  说明

 now()           返回当前日期和时间

4.2 字符串函数

sql 复制代码
     函数                        说明


 char_length()             返回字符串的长度

   length()                返回字符串的字节数

4.3 数学函数

sql 复制代码
   函数                       说明

   ABS()                   绝对值

  CEIL(X)                  返回不小于 X 的最小整数

  FLOOR(X)                 返回不大于 X 的最大整数

   CONV()                  不同进制转换

5. 小结

以上就是对MySQL增删查改的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持

相关推荐
橙子家8 小时前
浏览器缓存之【身份与会话管理】:Cookies 和 Private state tokens
前端
最新资讯动态9 小时前
HDC 2026 | 对话鲸鸿动能:存量时代,品牌如何夺回营销“主动权”?
前端
最新资讯动态9 小时前
游戏出海,从产品走向体系
前端
最新资讯动态9 小时前
20人团队跑出百万DAU、大厂也来抢量:谁在鸿蒙生态跑出加速度
前端
最新资讯动态10 小时前
千万开发者背后,鸿蒙商业化的B面
前端
爱勇宝11 小时前
AI 时代:智商决定起点,情商决定走多远
前端·ai编程
kyriewen12 小时前
用了半年 Claude Code 后,我尝试关掉它写了一周代码——结果比想象中严重
前端·javascript·ai编程
IT_陈寒12 小时前
Vite的静态资源打包让我熬夜到三点,这坑千万别跳
前端·人工智能·后端
小bo波13 小时前
使用Thread子类创建线程 VS 使用Runnable接口创建线程的区别
java·多线程·thread·并发编程·runnable
徐小夕13 小时前
万字拆解 JitWord:企业级实时协同文档底层架构 + 大模型 AI 融合完整实践
前端·vue.js·github