變數可以在子程式(函式、儲存過程、匿名塊)中宣告並使用,這些變數的作用範圍是在BEGIN...END程式中。

定義變數

語法格式:

DECLARE var_name [, var_name]... data_type [ DEFAULT value ];

var_name為區域性變數的名稱;

DEFAULT value子句指定指定變數的預設值,value除了可以被宣告為一個常量外,還可以被指定為一個表示式。如果沒有DEFAULT子句,變數的初始值為NULL。

示例:

DECLARE myparam INT DEFAULT 100;

變數賦值

定義變數以後,為變數賦值可以改變變數的預設值。MySQL中使用SET語句為變數賦值。

在儲存程式中的SET語句是一般SET語句的擴充套件版本。被參考變數可能是子程式內宣告的變數,或者是全域性伺服器變數,如系統變數或者使用者變數。

語法1:

SET var_name=expr [, var_name=expr]...;

示例1:

宣告3個變數,分別為var1, var2和var3,資料型別為INT,使用SET為變數賦值

DECLARE var1, var2, var3 INT;
SET var1=10, var2=20;
SET var3=var1+var2;

語法2:SELECT INTO為變數賦值

SELECT INTO語法把選定的列直接儲存到對應位置的變數。

MySQL中還可以通過SELECT...INTO為一個或者多個變數賦值,語法如下:

SELECT col_name[,...] INTO var_name[,...] table_expr [WHERE...];

示例2:

宣告變數v_employee_name和v_employee_salary,通過SELECT...INTO語句查詢指定記錄併為變數賦值:

DECLARE v_employee_name VARCHAR(100);
DECLARE v_employee_salary DECIMAL(8,4);

SELECT employee_name, employee_salary
INTO v_employee_name, v_employee_salary
FROM employees
WHERE employee_id=1;

------------------------------------------------------------------------------------------------------------------------

如果您們在嘗試的過程中遇到什麼問題或者我的程式碼有錯誤的地方,請給予指正,非常感謝!

聯絡方式:[email protected]

版權@:轉載請標明出處!
.