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

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.xdnf.cn/news/20032.html

相关文章:

  • H3C UIS Cell 3020 G3服务器更换raid卡安装ONEStor记录
  • windows系统服务器测试部署springboot+vue+mysql项目
  • 企业网络安全建设三阶段实战指南
  • 商家自动运营(四)足浴店管理—东方仙盟
  • 一文掌握Redisson分布式锁
  • 【Rhino】【Python】将开放曲面转换为边界线和填充
  • [特殊字符] DA1-13 复习学习笔记
  • 极空间打造 “超级中枢”,从书签笔记到聊天分享,一键全搞定!
  • 非力扣100原题
  • FTL文件格式的原理与应用(AI)
  • AI歌手功能终于上线!Suno AI 带你保存歌曲的灵魂
  • 【教程】2025 IDEA 快速创建springboot(maven)项目
  • spring boot autoconfigure 自动配置的类,和手工 @configuration + @bean 本质区别
  • 硬件开发1-51单片机2-按键、中断
  • 域名不做网站使用,还需要备案吗
  • 这才是真正懂C/C++的人,写代码时怎么区分函数指针和指针函数?
  • Qt + windows + Linux+QtInstallerFramework打包教程
  • RabbitMQ相关知识
  • 基于 STM32N6-AI Image Classification 使用 git bash 命令行示例 LAT1552
  • 单片机点灯
  • 【C++上岸】C++常见面试题目--算法篇(第十八期)
  • 网络:tcp
  • 关于稳定币的一些问答
  • 封装一个redis获取并解析数据的工具类
  • FPGA学习笔记——SDR SDRAM简介
  • 【golang长途旅行第37站】Redis连接池
  • OCR 发票识别与验真接口:助力电子化发票新时代
  • 融云:当我们谈论 AI 重构业务时,我们到底在谈论什么
  • 【Android】SharedPreferences轻量级持久化存储
  • 【题解】洛谷P1776 宝物筛选 [单调队列优化多重背包]