当前位置: 首页 > news >正文

Mysql之存储过程

MySQL 存储过程(Stored Procedure)

1. 概念

存储过程是一组预编译的 SQL 语句集合,可以通过调用名称来执行。存储过程可以接收参数,并支持复杂的业务逻辑(如条件语句、循环、异常处理等)。它们可以提高代码的可重用性和维护性。

2. 创建存储过程

使用 CREATE PROCEDURE 语句创建存储过程。基本语法如下:

CREATE PROCEDURE procedure_name (IN param1 INT, OUT param2 VARCHAR(100))
BEGIN-- SQL statements
END;
  • procedure_name 是存储过程的名称。
  • IN 参数用于输入,OUT 参数用于输出。
示例

创建一个存储过程来计算员工的平均薪资并返回:

DELIMITER \\CREATE PROCEDURE GetAverageSalary(OUT avg_salary DECIMAL(10, 2))
BEGINSELECT AVG(salary) INTO avg_salary FROM employees;
END\\DELIMITER ;
3. 调用存储过程

使用 CALL 语句来调用存储过程:

CALL GetAverageSalary(@avg_salary);
SELECT @avg_salary;
4. 存储过程的参数

存储过程可以有三种类型的参数:

  • IN:输入参数,存储过程内部可以使用这些参数。
  • OUT:输出参数,返回结果给调用者。
  • INOUT:既可以作为输入参数,也可以作为输出参数。
示例

创建一个存储过程,计算某个部门的平均薪资:

DELIMITER \\CREATE PROCEDURE GetDepartmentAverageSalary(IN dept_name VARCHAR(100), OUT avg_salary DECIMAL(10, 2))
BEGINSELECT AVG(salary) INTO avg_salaryFROM employeesWHERE department = dept_name;
END\\DELIMITER ;

调用方式:

CALL GetDepartmentAverageSalary('HR', @avg_salary);
SELECT @avg_salary;
5. 删除存储过程

使用 DROP PROCEDURE 语句删除存储过程:

DROP PROCEDURE procedure_name;
示例

删除刚才创建的存储过程:

DROP PROCEDURE GetAverageSalary;
6. 使用存储过程的优点
  • 提高性能:存储过程是预编译的,可以减少 SQL 解析的开销。
  • 封装业务逻辑:将复杂的业务逻辑封装在存储过程中,便于管理和维护。
  • 减少网络流量:通过一次调用执行多个 SQL 语句,减少客户端与数据库的交互。
7. 注意事项
  • 调试困难:存储过程的调试可能比简单 SQL 查询更复杂。
  • 版本控制:存储过程的版本管理和变更可能需要额外的注意。
  • 安全性:存储过程可以提供额外的安全性控制,但不当使用可能导致 SQL 注入等安全问题。

相关文章:

Mysql之存储过程

MySQL 存储过程(Stored Procedure) 1. 概念 存储过程是一组预编译的 SQL 语句集合,可以通过调用名称来执行。存储过程可以接收参数,并支持复杂的业务逻辑(如条件语句、循环、异常处理等)。它们可以提高代…...

XV6 开发环境搭建

Step 1 搭建ubuntu 20.04 虚拟机 注意:一定要使用ubuntu 20.04,该版本可以直接通过deb安装gnu编译工具链。 安装完虚拟机后,换apt源。 ubuntu20.04镜像下载链接 设置root账户密码: sudo passwd root Step 2 下载解压qemu 5.1.0 wget ht…...

Windows 系统下 Python 环境安装

一、引言 Python 作为一种广泛应用的编程语言,在数据分析、人工智能等领域发挥着重要作用。本文将详细介绍在 Windows 系统上安装 Python 环境的步骤。 二、安装前准备 系统要求 Windows 7 及以上版本一般都能支持 Python。硬件方面,通常 2GB 内存、几…...

VMware Workstation的有线连接消失了

进入/var/lib目录下 cd /var/lib 查看是否存在NetworkManager 文件 ls 将其删除,然后虚拟机reboot一下。 sudo rm -r NetworkManager reboot 解决了,可以联网...

73页车企大数据平台规划与数据价值挖掘应用咨询项目方案解读

该项目旨在帮助乘用车公司规划大数据平台并提高数据挖掘应用水平,以满足业务部门对数据的需求,同时保证数据完整性和真实性。数据应用体系现状存在数据孤岛和数据关注维度不统一的问题,导致业务部门无法便捷使用数据并无法进行业务预测。大数…...

MIF格式详解,javascript加载导出 MIF文件示例

MIF 格式详解 MIF(MapInfo Interchange Format)是由Pitney Bowes Software开发的一种文本格式,用于存储地理空间数据。它通常与地图可视化和地理信息系统(GIS)相关联。MIF文件通常成对出现,一个.mif文件用…...

若依实现图片上传时自动添加水印

文章目录 总体思路1. 修改通用上传方法2. 去除文件路径前两级目录3. 添加水印方法运行效果总结 为了解决图盗用,并有效保护图片版权,若依项目需要实现一个功能:上传图片时,自动在图片上添加水印。这不仅可以有效防止盗用&#xff…...

用于日语词汇学习的微信小程序+ssm

日语词汇学习小程序是高校人才培养计划的重要组成部分,是实现人才培养目标、培养学生科研能力与创新思维、检验学生综合素质与实践能力的重要手段与综合性实践教学环节。本学生所在学院多采用半手工管理日语词汇学习小程序的方式,所以有必要开发日语词汇…...

【信息系统项目管理师】高分论文:论信息系统项目的范围管理(融媒体发布系统)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 正文1、规划范围管理2、收集需求3、定义范围4、创建WBS5、确认范围6、控制范围正文 我市xx社区作为智慧社区建设的试点社区,将通过各种创新技术手段,促进小区公共服务智能管理应用,实现社区中的基础设施、环…...

Kaggler日志--Day5

进度24/12/15 昨日复盘 Intermediate Mechine Learning之类型变量 读两篇讲解如何提问的文章,在提问区里发起一次提问 实战:自己从头到尾首先Housing Prices Competition for Kaggle Learn Users并成功提交 Intermediate Mechine Learning之管道&#…...

VScode MAC按任意键关闭终端 想要访问桌面文件

说明 最近配置MAC上CPP的运行环境,在安装必要的CPP插件后,配置launch和task等json文件后,点击运行三角形,每次都会跳出main想要访问桌面上的文件。并且输出也是在调试控制台,非常逆天。 尝试 尝试1:尽管我尝试将ta…...

小粑记故乡的记忆

小粑,是我的故乡一安徽池州一带盛行的小吃。约成人掌心大小,厚度只三、四厘米,故谓之“小”。 小粑,主打取材随性,方便常做常吃。这也许就是它抓住人的味蕾,渐次流行开来,成为当地名小吃的主要原…...

git使用小记

环境(centos为例): yum -y install gitmkdir git_dir && cd git_dirgit clone *** 修改代码: git checkout master 切到主分支git pull 拉取最新代码git branch dev 创建开发分支git checkout dev 切换到开发分支修…...

Python实现办公自动化——自动编写word文档

Python实现办公自动化——自动编写word文档 前言安装python-docxpython-docx使用创建word文档设置纸张方向、大小和页边距统一设置格式插入文本插入表格插入图片 结语 前言 工作中有大量的报告编写需求,在不停地复制粘贴之后,突然想到,这种高…...

番外篇 | BGF-YOLO:引入双层路由注意力、广义特征金字塔网络和第四检测头,提高YOLOv8检测性能

前言:Hello大家好,我是小哥谈。本文提出了一种名为BGF-YOLO的新模型,通过引入双层路由注意力、广义特征金字塔网络和第四检测头,提高YOLOv8在脑肿瘤检测中的性能,采用多层特征融合与动态稀疏注意机制以减少特征冗余。 🌈 目录 🚀1.基础概念 🚀2.网络结构 �…...

Python运维自动化之字典Dict

字典Dict(哈希表) Dict即Dictionary,也称为mapping。 Python中,字典由任意个元素构成的集合,每一个元素称为Item,也称为Entry。这个Item是由(key, value)组成的二元组。 字典是可变的、无序的、key不重复的key-value键值对集合。…...

axios请求拦截器和响应拦截器,封装naive-ui的 Loading Bar加载条和useMessage消息提示

接之前的博客设计从0开始边做边学,用vue和python做一个博客,非规范化项目,怎么简单怎么弄,跑的起来有啥毛病解决啥毛病(三),目前已经完成了基本的功能demo,但是请求接口不可能每个页…...

9.Python 条件语句和循环语句

文章目录 Python 条件语句和循环语句1. **条件语句 (Conditional Statements)**1.1 if 语句1.2 if-else 语句1.3 if-elif-else 语句 2. **循环语句 (Loop Statements)**2.1 while 循环2.2 for 循环2.3 循环嵌套 (Nested Loops) 3. **控制循环的语句**3.1 break 语句3.2 continu…...

智能家居控制系统设计

设计智能家居控制系统是一个复杂但有趣的项目,它涉及硬件与软件的集成、网络通信、用户界面设计等多个方面。以下是一个智能家居控制系统的基本设计思路: 1. 需求分析- 功能需求:明确系统需要实现的功能,如灯光控制、空调温度调节…...

Windows系统word插入公式自动编号并交叉引用

一、定义新的多级列表 鼠标单击页面空白处 二、插入域 鼠标单击要插入公式编号的地方 三、交叉引用 鼠标单击要引用公式编号的地方 四、更新编号(域) CtrlA:全选全文 鼠标右键:更新域...

【基于项目代码实测:XCP/CCP 模块“标定差异”全流程深度操作指南无标题】

在实际项目的 XCP/CCP 标定业务中,核对与同步底层内存参数是一项极其高频的操作。本指南将完全基于最新版“标定差异(Calibration Difference)”界面的真实功能逻辑,为你提供一份严谨、详细、且立即可用的三倍容量操作手册。无论你…...

【AI入门知识点】Skills 是什么?终于有人把 Skills、Function Calling、MCP 讲明白了

为什么现在 AI 会查天气?为什么 AI 能读 Excel、操作浏览器、发邮件?为什么很多人说:未来 AI 拼的不是谁更聪明,而是谁 Skills 更多?很多刚学 AI 的人。都会被几个词搞晕:SkillsFunction CallingMCP看起来都…...

技术债的“利息”怎么算?一个让非技术领导也能理解的比喻

一、从“信用卡账单”到“技术债利息”:一个通俗的起点软件测试从业者对“技术债”这个词绝不陌生,每次面对历史代码里的“隐秘角落”,看着新功能开发时层出不穷的连锁Bug,我们都能直观感受到技术债带来的拖累。但要向非技术领导解…...

Inno Setup 简体中文语言包:3分钟让Windows安装程序说中文![特殊字符]

Inno Setup 简体中文语言包:3分钟让Windows安装程序说中文!🚀 【免费下载链接】Inno-Setup-Chinese-Simplified-Translation :earth_asia: Inno Setup Chinese Simplified Translation 项目地址: https://gitcode.com/gh_mirrors/in/Inno-S…...

终极指南:5分钟掌握JarEditor,无需解压直接编辑JAR文件

终极指南:5分钟掌握JarEditor,无需解压直接编辑JAR文件 【免费下载链接】JarEditor IDEA plugin for directly editing and modifying files in jar without decompression. (一款无需解压直接编辑修改jar包内文件的IDEA插件) 项…...

原来赛事专用匹克球工厂还有这么多门道?你了解吗?

引言在匹克球运动蓬勃发展的当下,赛事专用匹克球的品质至关重要。而赛事专用匹克球工厂背后,其实隐藏着诸多门道。泉州凯瑞麟体育用品有限公司作为行业内的佼佼者,在这方面有着独特的技术与经验。核心材料与技术创新赛事专用匹克球对核心材料…...

Mythos骨架式推理:企业级AI能力治理与因果建模新范式

1. 项目概述:一次被刻意“锁住”的能力跃迁如果你最近关注大模型前沿动态,大概率已经看到“Anthropic Mythos”这个词在技术圈悄然升温。它不是某个新发布的开源模型,也不是某家创业公司的秘密武器,而是Anthropic内部代号为Mythos…...

3个理由告诉你:为什么Notepad2-mod是你开启开源贡献的最佳起点

3个理由告诉你:为什么Notepad2-mod是你开启开源贡献的最佳起点 【免费下载链接】notepad2-mod LOOKING FOR DEVELOPERS - Notepad2-mod, a Notepad2 fork, a fast and light-weight Notepad-like text editor with syntax highlighting 项目地址: https://gitcode…...

2025-2026年护眼灯品牌推荐:十大评测专业排行防蓝光伤眼价格特点

摘要 当消费者对家庭光环境的认知从“照亮空间”跃迁至“健康护眼”,如何从纷繁复杂的市场中精准选择一盏真正经得起科学检验的护眼灯,已成为现代家庭决策者的核心焦虑。根据全球知名市场研究机构Grand View Research发布的报告,全球LED照明市…...

多用户预付费电表箱

这款多用户预付费电表箱,专为高密度用电场景打造。采用集中式计量方案,25户仅需一块电表即可完成分户独立计量,相比传统分户电表,大幅节省安装空间与布线成本。箱体集成主断路器、分户空开、预付费电能表于一体,一户一…...