【MySQL存储过程和函数】存储过程定义变量与用户变量详解
2022/2/3 2:13:37
本文主要是介绍【MySQL存储过程和函数】存储过程定义变量与用户变量详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
一、在存储过程中定义变量
1.定义变量
2.为变量赋值
①使用set关键词赋值
②使用SELECT…INTO语句为变量赋值
二、使用@创建用户变量
一、在存储过程中定义变量
在存储过程和函数中,可以定义和使用变量。用户可以使用关键字DECLARE来定义变量,然后为变量赋值。这些变量的作用范围是在BEGIN…END程序段中。
1.定义变量
在MySQL中,可以使用DECLARE关键字来定义变量。定义变量的基本语法如下:
DECLARE var_name[,…] type [DEFAULT value]
- 关键字DECLARE是用来声明变量的;
- 参数var_name是变量的名称,可以同时定义多个变量;
- 参数type用来指定变量的类型;
- DEFAULT value子句将变量默认值设置为value,没有使用DEFAULT子句时,默认值为NULL。
定义变量cid,数据类型为INT型,默认值为10,代码如下:
declare cid int default 10;
2.为变量赋值
①使用set关键词赋值
SET语句的基本语法如下:
SET var_name=expr[,var_name=expr]… #可以是确定值,也可以是表达式
- 关键字SET用来为变量赋值;
- 参数var_name是变量的名称;
- 参数expr是赋值表达式。一个SET语句可以同时为多个变量赋值,各个变量的赋值语句之间用逗号隔开。
例如,将变量temp_id赋值为88,代码如下:
set temp_id=88;
②使用SELECT…INTO语句为变量赋值
其基本语法如下:
SELECT col_name[,…] INTO var_name[,…] FROM table_name WHERE condition
- 参数col_name表示查询的字段名称;
- 参数var_name是变量的名称;
- 参数table_name指表的名称;
- 参数condition指查询条件。
在下面student表和class表创建存储过程proc_query_student, 要求输入学生id,返回学生所在班级以及班级人数:
delimiter $$ create procedure proc_query_student(in sid int,out cname varchar(64),out ccount int) begin declare temp_cid int; declare temp_cname varchar(64); declare temp_ccount int; select class_id into temp_cid from student where id=sid; select name,count into temp_cname,temp_ccount from class where id=temp_cid; set cname=temp_cname,ccount=temp_ccount; end; $$ mysql> delimiter ;
二、使用@创建用户变量
使用@关键字创建“用户变量”,“用户变量的作用范围”在整个当前对话中,其语法形式如下:
@ var_name;
例如创建“用户变量”调用上面的存储过程,并使用select语句查看变量:
call proc_query_student(3,@name,@count); select @name,@count;
查询结果:
这篇关于【MySQL存储过程和函数】存储过程定义变量与用户变量详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南
- 2024-12-07MySQL慢查询入门:快速掌握性能优化技巧
- 2024-12-07MySQL入门:新手必读的简单教程
- 2024-12-07MySQL入门:从零开始学习MySQL数据库
- 2024-12-07MySQL索引入门:新手快速掌握MySQL索引技巧
- 2024-12-06BinLog学习:MySQL数据库BinLog入门教程
- 2024-12-06Binlog学习:MySQL数据库的日志管理入门教程