变量与存储过程的综合使用

变量与存储过程的综合涉及到两个方面的变量使用:

1.在引入的参数变量中使用变量(参数变量)

2.在函数内部声明的变量中使用变量(内部变量)

3.补充:函数外部的变量(外部标量)不能直接调到存储过程中作为变量执行使用

 

存储过程与变量的结合使用实例:

复制代码
 1 #方式2:使用局部变量
 2 DELIMITER //
 3 
 4 CREATE PROCEDURE add_value()
 5 BEGIN
 6     #声明
 7     DECLARE value1,value2,sum_val INT;#此处声明一样的类型变量只能在最后声明一次,不能在每个变量后面都声明一次,否则要写三次DECLARE
 8     
 9     #赋值
10     SET value1 = 10;
11     SET value2 := 100;
12     
13     SET sum_val = value1 + value2;
14     #使用
15     SELECT sum_val;
16 END //
17 
18 DELIMITER ;
复制代码

 

复制代码
 1 #举例3:创建存储过程“different_salary”查询某员工和他领导的薪资差距,并用IN参数emp_id接收员工id,
 2 #用OUT参数dif_salary输出薪资差距结果。
 3 
 4 DELIMITER //
 5 
 6 CREATE PROCEDURE different_salary(IN emp_id INT,OUT dif_salary DOUBLE)
 7 BEGIN
 8     #分析:查询出emp_id员工的工资;查询出emp_id员工的管理者的id;查询管理者id的工资;计算两个工资的差值
 9     
10     #声明变量
11     DECLARE emp_sal DOUBLE DEFAULT 0.0; #记录员工的工资
12     DECLARE mgr_sal DOUBLE DEFAULT 0.0; #记录管理者的工资
13     
14     DECLARE mgr_id INT DEFAULT 0; #记录管理者的id
15     
16     
17     #赋值
18     SELECT salary INTO emp_sal FROM employees WHERE employee_id = emp_id;
19     
20     SELECT manager_id INTO mgr_id FROM employees WHERE employee_id = emp_id;
21     SELECT salary INTO mgr_sal FROM employees WHERE employee_id = mgr_id;
22     
23     SET dif_salary = mgr_sal - emp_sal;
24 
25 END //
26 DELIMITER ;
复制代码

此处的编程思想和高级语言的编程思想较为类似。

 

补充:定义存储函数时,也可以和存储过程一样,结合变量使用,把要求的值定义出来,再用一系列语句将其求出,再RETURN 这个值

    该方法相较于直接RETURN一个整体,更为简明,也更为灵活

posted @   jue1e0  阅读(82)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示