首页 > 数据库 >MYSQL 存储过程示例

MYSQL 存储过程示例

时间:2024-03-14 17:33:30浏览次数:23  
标签:存储 p1 示例 数据库 MYSQL 过程 procedure

MySQL 5.0 版本开始支持存储过程。

存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。

存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。

存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。

优点
存储过程可封装,并隐藏复杂的商业逻辑。
存储过程可以回传值,并可以接受参数。
存储过程无法使用 SELECT 指令来运行,因为它是子程序,与查看表,数据表或用户定义函数不同。
存储过程可以用在数据检验,强制实行商业逻辑等。
缺点
存储过程,往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程。
存储过程的性能调校与撰写,受限于各种数据库系统。

MySQl 存储过程其实不难,话不多说,直接上代码:
示例一
简单的存储过程创建,传值,调用
create procedure GreatWorld() select concat(@greatting,'world'); set @greatting = 'hello' call GreatWorld();

示例二
调用全局变量在存储过程中
create procedure p1() set @last_procedure = 'p1'; create procedure p2() select concat('last procedure was' ,@last_procedure); call p1; call p2;

标签:存储,p1,示例,数据库,MYSQL,过程,procedure
From: https://www.cnblogs.com/Stephen-leg/p/18073379

相关文章

  • MYSQL学习笔记26: 多表查询|子查询
    多表查询|子查询行子查询查询与张无忌工资相同,且直属领导相同的员工#写法1select*fromempwheresalary=(selectsalaryfromempwherename='张无忌')andmanagerId=(selectmanagerIdfromempwherename='张无忌');#可以合并起来,写入一个集合selec......
  • MySQL之运算符篇
    1.算术运算符算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加(+)、减(-)、乘(*)、除(/)和取模(%)运算。1.1 加法与减法运算符由运算结果可以得出如下结论:一个整数类型的值对整数进行加法和减法操作,结果还是一个整数;一个整数类型的值......
  • Mysql 100个表嵌套查询 存储过程
    背景1. 业务销售订单会随机落在1~100表中,查询一个订单时需要1到100表依次去查询,增加手工重复操作和浪费时间。2.查询未解冻数据时,需要过滤部分解冻的数据,此时需要用到嵌套查询。 一、根据订单号,循环1~100个表,查询出订单数据CREATEDEFINER=`{数据库连接账号}`@`%`......
  • 主存储器的基本构成,MAR\MDR
    前言:记录一些应该记忆的内容,课程是王道的计算机组成原理。MAR:存储地址寄存器MDR:存储数据寄存器计算机在读写数据的过程中主要涉及到的三个原件:CPU:中央处理器负责执行指令和控制计算机的操作。当需要执行写入数据操作时,CPU会通过指令控制数据传输的流程。MAR(MemoryA......
  • ESP32-Cam 初步使用:网络摄像头示例
    此片意在教会你如何初步使用ESP32-cam阅读本文,你将学会:一.学会安装Arduino二.学会使用相关例程一、Arduino的下载安装及汉化1.下载Arduino(Arduino软件下载官网)2.Arduino的安装3.Arduino的汉化:左上角File-->Preferences(Ctrl+逗号也能进入)-->Settings-->Lang......
  • 数据库练习发生的error—— check the manual that corresponds to your MySQL server
    记录一下发生的错误。 checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear''id'),参考链接:完美解决ERROR1064(42000):YouhaveanerrorinyourSQLsyntax...near…_responsecode:420001064r......
  • MYSQL 是如何保证binlog 和redo log同时提交的?
    MYSQL一个事务在提交的时候能够保证binlog和redolog是同时提交的,并且能在宕机恢复后保持binlog和redolog的一致性。先来看看什么是redolog和binlog,以及为什么要保持它们的一致性。什么是redolog,binlogredolog是innodb引擎层产生的日志,MYSQL从磁盘读取数据的单位是一......
  • java毕业设计线上水果店系统app(springboot+mysql+jdk1.8+meven)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在现代社会,随着生活节奏的加快和健康饮食观念的普及,人们对于水果的需求日益增长。传统的水果购买方式通常需要在实体店铺中进行,这不仅耗费时间,而且在种类......
  • java毕业设计线上书城网站(springboot+mysql+jdk1.8+meven)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的不断发展,人们获取信息和知识的方式也在逐渐改变。传统的书店购书方式已经不能满足现代人快节奏的生活需求。线上书城网站的出现,为用户提......
  • mysql for update是锁表还是锁行
    https://www.cnblogs.com/waldron/p/18068079 在并发一致性控制场景中,我们常常用forupdate悲观锁来进行一致性的保证,但是如果不了解它的机制,就进行使用,很容易出现事故,比如forupdate进行了锁表导致其他请求只能等待,从而拖垮系统,因此了解它的原理是非常必要的,下面我们通过一系......