Navicat Premium 10.1.3激活(MySQL-存储过程)

Navicat Premium 10.1.3激活(MySQL-存储过程)

前言

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

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

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

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

优点

  • 存储过程可封装,并隐藏复杂的商业逻辑。
  • 存储过程可以回传值,并可以接受参数。
  • 存储过程无法使用 SELECT 指令来运行,因为它是子程序,与查看表,数据表或用户定义函数不同。
  • 存储过程可以用在数据检验,强制实行商业逻辑等。

缺点

  • 存储过程,往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程。
  • 存储过程的性能调校与撰写,受限于各种数据库系统。

第一个例子

我们通过一个简单的例子来学习存储过程的基本语法
基本语法:


案例:
先说几个问题,我这里用的是Navicat。Navicat中默认的语句结束符号是“;” 但是在存储过程中我们可能会有多条语句,每条语句的结束都是“;”,为了防止创建存储过程中Navicat就使用“;”作为结束符号,我们需要重新申明结束符号:


tips : 当然这个符号你可以自己定义(不要太随意就行)。
来吧!看看案例:


执行之后查看左边的结构视口:
Navicat Premium 10.1.3激活(MySQL-存储过程)
执行存储过程:


删除存储过程:


当然我们上面的存储过程仅仅是执行了一条查询语句。
存储过程中可以有业务逻辑,那么就需要基本的流程控制。
所以我们要写出一定质量的存储过程,就需要了解存储过程中的一些基本语法。
tips:只要你学过编程,这些都很简单。
当然,让我们觉得恶心的就是,每个不同的数据库中的存储过程的语法都不一样。这也是前面说过的存储过程最大的缺点。

基本语法

变量

MySQL的变量有:全局变量,回话变量,用户变量,系统变量,局部变量。
我们这里重点研究存储过程的使用,暂时只说局部变量。
局部变量就是申明在BEGIN和END之间的变量,作用域也就是在BEGIN和END之间。
申明变量:使用DECLARE关键字


案例:


给变量赋值有两种方式:
方式1:直接set


方式2: 使用select into


案例:

  • 局部变量一定要放在存储过程的开头

流程控制语句

分支语句

[1] if…then …else
语法


案例:


[2]CASE结构
直接上菜吧:


循环语句

[1]while ···· end while



[2]repeat···· end repeat



[3]loop ·····endloop

loop 循环不需要初始条件,这点和 while 循环相似,同时和 repeat 循环一样不需要结束条件, leave 语句的意义是离开循环。


存储过程的参数

MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如:


  • IN 输入参数:表示调用者向过程传入值(传入值可以是字面量或变量)
  • OUT 输出参数:表示过程向调用者传出值(可以返回多个值)(传出值只能是变量)
  • INOUT 输入输出参数:既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)

1、in 输入参数

就简单理解为java方法的参数


额~~~~
调用有输入参数的存储过程就需要传入对应的参数


2、out输出参数

就简单的理解为java中方法的返回值


调用有输出参数的存储过程


3、inout输入参数

额!!Navicat Premium 10.1.3激活;!就字面意思。既能输入,也能输出。 其实知道就好,尽量不要使用这种类型的参数


调用


今天的文章
Navicat Premium 10.1.3激活(MySQL-存储过程)分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/114632.html

(0)
编程小号编程小号
上一篇 2024-07-22
下一篇 2024-07-22

相关推荐