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

mysql高级进阶(存储过程)

1. 概念:

存储过程作用:一组为了完成特定功能的SQL语句集,在第一次使用经过编译后,再次调用就不需要重复编译,因此执行效率比较高。一次定义多次调用。

2.定义语法:

CREATE PROCEDURE 存储过程名([[ IN | OUT | INOUT ] 参数名称 参数类型])
BEGIN
过程体
END ;

语法说明:

  • 存储过程设置参数时,在参数名前还可以指定参数的来源及用途,区别如下。
  • IN:表示输入参数,即参数是在调用存储过程时传入到存储过程里面使用,输入参数前可省略IN。
  • OUT:表示输出参数,初始值为NULL,它是将存储过程中的值保存到OUT指定的参数中,返回给
    调用者。
  • INOUT:表示输入输出参数,即参数在调用时传入到存储过程,同时在存储过程中操作之后,又可
    将数据返回为调用者

调用语法

CALL [数据库名.]存储过程名称([实参列表]);

语法说明

  • 实参列表传递的参数需要与创建存储过程的形参相对应
  • 当形参被指定为IN时,则实参值可以为变量或是直接数据(如 10);
  • 当形参被指定为OUT或INOUT时,调用存储过程传递的参数必须是一个变量,用于接收返回的数据

案例

1. 无参存储

例:编写存储过程,用于查询员工及所对应的职称
在这里插入图片描述

2. 输入参数的存储过程

例:查看某个职称的员工信息
在这里插入图片描述
例:根据参数显示分页内容
在这里插入图片描述

3. 输入输出参数的存储过程

注意:一个输出参数只能接收一个数据,如果存储过程查询时得到多个数据,则会发生“Result consisted of more than one row”的错误
例:查看某个职称最高的工资,得到工资,用于后
在这里插入图片描述
例:输出参数有多个,如查看某个职称最高的工资,平均工资,得到数据,用于后续计算
在这里插入图片描述

http://www.dtcms.com/a/365939.html

相关文章:

  • 认识HTML
  • CDN的工作原理是什么?为什么要用高防 CDN?
  • 数据结构:双向链表
  • 分割回文串手绘图
  • 电脑城老板不会告诉你的装机秘籍:建造者模式让你的代码高配起飞!
  • @Autowired原理(三)
  • 【Qt中信号槽连接connect有接收者和无接收者的区别】
  • LeetCode 20.有效的符号算法解析及栈的相关知识
  • FTL文件格式的原理与应用(AI)
  • 【工具变量】上市公司绿色供应链管理示范企业DID数据(2010-2024年)
  • AUTOSAR进阶图解==>AUTOSAR_TPS_ARXMLSerializationRules
  • Linux学习-硬件
  • 2025年IT行业入门级证书选择与分析
  • 从竞态到原子:pread/pwrite 如何重塑高效文件 I/O?
  • 深入浅出:YOLOv8性能评估指标与电科金仓2025AI新成果
  • SuperMap GIS基础产品FAQ集锦(20250819)
  • C++----模板特化以及模板声明与定义分离问题
  • 2025 大学生必考 IT 行业证书
  • BigemapPro中的坐标定位于与拾取
  • NuttX编译流程与config.h生成解析
  • STM32G4 电流环闭环
  • Springboot3+SpringSecurity6Oauth2+vue3前后端分离认证授权-授权服务
  • 后端框架(SpringBoot):自动配置的底层执行流程
  • 2025年经管专业人士证书选择与分析
  • 深入理解Cloudflare错误1006、1007和1008:原因、解决方案和预防措施
  • Android创建demo脚本
  • 比亚迪欧洲逆袭特斯拉,新能源出海新纪录!
  • Redis 哨兵模式(Sentinel Mode)
  • Reflection反射
  • rsync + lsyncd 的高效文件实时同步系统