MySQL存储过程及语法详解 目录 1. 存储过程基本用法 1.1 概念 1.2 创建存储过程 1.2.1 语法格式 2.2.2 语法介绍 1.3 调用存储过程 1.4 查看存储过程 1.5 删除存储过程 2. 存储过程中的语法结构 2.1 变量的声明以及赋值 2.1.1 DECLARE 声明变量 2.1.2 SET 变量赋值
目录
- 1. 存储过程基本用法
- 1.1 概念
- 1.2 创建存储过程
- 1.2.1 语法格式
- 2.2.2 语法介绍
- 1.3 调用存储过程
- 1.4 查看存储过程
- 1.5 删除存储过程
- 2. 存储过程中的语法结构
- 2.1 变量的声明以及赋值
- 2.1.1 DECLARE 声明变量
- 2.1.2 SET 变量赋值
- 2.1.3 select...into 赋值
- 2.2 条件判断
- 2.2.1 if条件判断
- 2.3 传递参数
- 2.3.1 IN - 输入参数
- 2.3.2 out - 输出参数
- 2.4 case 结构
- 2.5 while循环
- 2.6 repeat循环
- 2.7 loop循环
- 2.8 leave语句
1. 存储过程基本用法
1.1 概念
- 存储过程,也叫做存储程序,是一条或者多条SQL语句的集合,可以视为批量处理,但是其作用不仅仅局限于批量处理。
- 其中针对存储过程也有多种操作:如何创建存储过程,以及如何调用、查看、修改、删除存储过程。存储过程也可以调用其他存储过程。(类似于Java函数之间的相互调用)
- 存储过程和函数是:事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作,减少数据库和应用之间的传输,对于提高数据处理的效率是非常有好处的。
函数:是一个有返回值的过程;过程:是一个没有返回值的函数
存储过程和自定义函数的区别:
- 存储过程实现的功能要复杂一些;而函数的针对性更强。
- 存储过程可以返回多个值;函数只能有一个返回值。
- 存储过程一般独立的来执行;而函数可以作为其他SQL语句的组成部分实现出来。
1.2 创建存储过程
1.2.1 语法格式
2.2.2 语法介绍
- delimiter : 用于设置sql语句分割符,默认为分号。因为在MySQL中每一条SQL语句都必须以 ;进行结束,当我们换行的时候就会执行这条SQL语句,但是我们此时的存储过程并没有结束,就会造成直接执行没有写完的存储过程造成报错,所以此时需要声明其他的结束符,不让其使用默认的分隔符结束SQL语句。
- sql语句 :在这个部分编写sql语句,编写的语句需要以分号结尾,此时回车会直接执行,所以要创建存储过程前需要指定其他符号作为分割符,此时使用 // , 也可以使用其它字符。
- // : 声明结束符号,这个符号可以是任意的,是自定义的。相当于就是把 分号替换为 //
创建存储过程查询学生信息
1.3 调用存储过程
语法格式:
1.4 查看存储过程
语法格式:
1.5 删除存储过程
语法格式:
2. 存储过程中的语法结构
- 存储过程是可以编程的,意味着可以使用变量、表达式、控制语句来完成比较复杂的功能。
2.1 变量的声明以及赋值
2.1.1 DECLARE 声明变量
DECLARE : 通过 DECLARE 关键字可以定义一个局部变量,该变量的作用范围只能在 BEGIN..,END 块中。
语法格式:
注意:声明变量的时候可以一次性声明多个,使用逗号隔开。
示例:
2.1.2 SET 变量赋值
SET : 直接赋值使用SET关键字,可以赋常量或者是表达式,具体语法如下:
注意:一次可以给多个变量赋值,中间使用逗号隔开。
2.1.3 select...into 赋值
2.2 条件判断
2.2.1 if条件判断
语法结构:
需求:
根据身高,判断当前身高所属的身材类型
180及以上 --------> 身材高挑
170 - 180 --------> 标准身材
170以下 ----------> 一般身材
实现这个简单的逻辑:
2.3 传递参数
语法格式:
2.3.1 IN - 输入参数
需求:根据输入的身高变量的值,判断当前身高对应的身材类型
实现:
调用:
2.3.2 out - 输出参数
需求:根据输入的身高,返回当前身高所处的身材类型
实现:
调用:
@标识符的作用
- @figure :这种在变量名前面加上”@“符号,叫做用户会话变量,代表整个会话过程他都是有作用的,这个类似于全局变量一样。当前会话就是代表的,比如我们在命令提示窗口中给好多带有 @ 符号变量进行赋值,此时这些变量的值只作用于当前的会话,当我们把这个窗口关闭的时候,此时这些变量的值就会释放掉。
- @@global : 这种在变量名前加上 "@@" 符号,叫做系统变量。
2.4 case 结构
语法格式:
需求:给定一个月份,判断该月份所属的季度
实现:
2.5 while循环
有条件的循环控制语句,当满足条件的时候进入循环,不满足条件的时候退出循环。
语法结构:
需求:计算从1加到n的值
实现:
2.6 repeat循环
有条件的循环控制语句,当不满足条件的时候进入循环,满足条件的时候跳出循环。他和while循环是反着的
语法结构:
需求:计算从1加到n的值
实现:
2.7 loop循环
loop实现简单的循环,退出循环的条件需要使用其他的语句定义,通常可以使用leave语句实现,具体语法如下:
语法格式:
如果不在statement_list中增加退出循环的语句,那么loop语句可以永安里实现简单的死循环。
2.8 leave语句
用来从标注的流程构造中退出,通常和 begin...end 或循环一起使用。下面是一个使用loop和leave的简单例子,退出循环:
需求:计算从1加到n的值 ---> 使用loop...leave的形式进行退出循环
实现:
到此这篇关于MySQL存储过程及语法详解的文章就介绍到这了,更多相关MySQL存储语法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!