MYSQL的聚合函数,存储过程的知识点

聚合函数

MySQL提供了多种聚合函数,用于对数据进行汇总计算:

  • **COUNT():** 统计行数或非NULL值的数量。

  • **SUM():** 计算某列值的总和。

  • **AVG():** 计算某列值的平均值。

  • **MAX():** 获取某列的最大值。

  • **MIN():** 获取某列的最小值。

这些函数可用于单列或多列,也可搭配WHERE子句进行条件过滤。

存储过程

MySQL存储过程是预先编译并存储在数据库中的一组SQL语句。它们有以下关键特点:

  • **参数支持:** 存储过程可以接受参数,并在执行时使用这些参数。

  • **封装逻辑:** 允许将多个SQL语句组合为一个可重用的单元。

  • **提高性能:** 存储过程可以减少与数据库服务器的通信次数,提高性能。

  • **事务控制:** 可以在存储过程中实现事务控制,保证数据的一致性和完整性。

存储过程的基本语法包括`CREATE PROCEDURE`来创建存储过程,`BEGIN...END`来定义过程体,以及`CALL`来执行存储过程。

示例:

**聚合函数示例:**

```sql

SELECT COUNT(*) AS TotalUsers FROM users; -- 统计用户总数

SELECT AVG(salary) AS AvgSalary FROM employees WHERE department = 'Sales'; -- 计算销售部门的平均工资

```

**存储过程示例:**

```sql

DELIMITER //

CREATE PROCEDURE GetEmployeeCount(IN dept_name VARCHAR(50), OUT employee_count INT)

BEGIN

SELECT COUNT(*) INTO employee_count FROM employees WHERE department = dept_name;

END //

DELIMITER ;

CALL GetEmployeeCount('Sales', @count); -- 调用存储过程并获取销售部门的员工数

SELECT @count AS SalesEmployeeCount;

```

相关推荐
乌鸦乌鸦你的小虎牙1 小时前
qt 5.12.8 配置报错(交叉编译环境)
开发语言·数据库·qt
一只大袋鼠2 小时前
Redis 安装+基于短信验证码登录功能的完整实现
java·开发语言·数据库·redis·缓存·学习笔记
Anastasiozzzz2 小时前
深入研究Redis的ZSet底层数据结构:从 Ziplist 的级联更新到 Listpack 的完美救场
数据结构·数据库·redis
菠萝蚊鸭2 小时前
x86 平台使用 buildx 基于源码构建 MySQL Wsrep 5.7.44 镜像
数据库·mysql·galera·wsrep
沙漏无语4 小时前
(二)TIDB搭建正式集群
linux·数据库·tidb
姚不倒4 小时前
三节点 TiDB 集群部署与负载均衡搭建实战
运维·数据库·分布式·负载均衡·tidb
隔壁小邓4 小时前
批量更新方式与对比
数据库
数据知道4 小时前
MongoDB复制集架构原理:Primary、Secondary 与 Arbiter 的角色分工
数据库·mongodb·架构
人道领域4 小时前
苍穹外卖:菜品新增功能全流程解析
数据库·后端·状态模式
修行者Java4 小时前
(七)从 “非结构化数据难存储” 到 “MongoDB 灵活赋能”——MongoDB 实战进阶指南
数据库·mongodb