☰
Mysql进阶篇---存储过程
2026/10/14 11:10:25 网站建设 项目流程

一.介绍

二.基本语法

例子:

例子:

DEFINER表示的是创建用户

这是在可视化界面中创建存储过程,在命令行窗口中创建存储过程可能出现问题

可见报错,而且能看出报错的原因是把分号当成了sql语句的结束

解决方法:

例子:

这里改成以$$结束

三.变量

(1)系统变量

全局变量在所有会话中都能访问

会话变量只在当前会话中生效

例子:

系统变量是很多的 几百个

没加级别默认是session级别

show session variables;

show session variables like 'auto%';

show global variables like 'auto%';

select @@global.autocommit;

set session autocommit = 0;

select @@session.autocommit;

注意事项:

(2)用户自定义变量

例子:

set @myname = 'itcast';

set @myage := 10;

set @mygender := '男',@myhobby := 'java';

select @myname,@myage,@mygender,@myhobby;

注意事项

例子:

select @abc;

结果为null

(3)局部变量

例子:

四.if判断

例子:

问题:

可以注意到score 是写死的,这里就需要引入参数

五.参数

例子:

这次不把score写死,并且不用select输出,而是返回

六.case

例子:

七.循环

(1)while

例子:

(2)repeat

例子:

(3)loop

例子:

在上一题的基础上加上

八.游标

引入:

我们想把student表里的数据存在stu_count中,但是stu_count是int类型

也就是说我们想要存结果集,简单的数据类型是做不到的,于是引出了游标

例子:

注意事项:

先创建局部变量再创建游标

九.条件处理程序(Handler)

引出:

如果你运行了上面的程序,你会发现报错了

因为循环的条件是while true

我们要遍历表,那我们怎么知道读取到最后一行数据,就结束呢?

于是引出条件处理程序(Handler)

例子:

循环中,读取完数据后,会通过handler 关闭游标并退出,不报错

十.存储函数

例子:

注意事项:

Mysql 8.x版本 默认二进制开启,开启的话,就会要求说明存储函数的特性

存储函数用的较少,因为存储函数必须有返回值,而且存储函数能干的,存储过程也能干

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询