1. 程式人生 > 其它 >變數與儲存過程的綜合使用

變數與儲存過程的綜合使用

變數與儲存過程的綜合涉及到兩個方面的變數使用:

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 ;

此處的程式設計思想和高階語言的程式設計思想較為類似。