在 MySQL 中,除了支援標準的儲存過程和函數外,還引入了表示式。表示式與其它高階語言的表示式一樣,由變數、運算子和流程控制來構成。
變數是表示式語句中最基本的元素,可以用來臨時儲存資料。在儲存過程和函數中都可以定義和使用變數。使用者可以使用 DECLARE 關鍵字來定義變數,定義後可以為變數賦值。這些變數的作用範圍是 BEGIN...END 程式段中。
下面將講解如何定義變數和為變數賦值。
1. 定義變數
MySQL 中可以使用
DECLARE 關鍵字來定義變數,其基本語法如下:
DECLARE var_name[,...] type [DEFAULT value]
其中:
-
DECLARE 關鍵字是用來宣告變數的;
-
var_name 引數是變數的名稱,這裡可以同時定義多個變數;
-
type 引數用來指定變數的型別;
-
DEFAULT value 子句將變數預設值設定為 value,沒有使用 DEFAULT 子句時,預設值為 NULL。
例 1
下面定義變數 my_sql,資料型別為 INT 型別,預設值為 10。SQL 語句如下:
DECLARE my_sql INT DEFAULT 10;
2. 為變數賦值
MySQL 中可以使用
SET 關鍵字來為變數賦值,SET 語句的基本語法如下:
SET var_name = expr[,var_name = expr]...
其中:
-
SET 關鍵字用來為變數賦值;
-
var_name 引數是變數的名稱;
-
expr 引數是賦值表示式。
注意:一個 SET 語句可以同時為多個變數賦值,各個變數的賦值語句之間用逗號隔開。
例 2
下面為變數 my_sql 賦值為 30。SQL 語句如下:
SET my_sql=30;
MySQL 中還可以使用
SELECT..INTO 語句為變數賦值。其基本語法如下:
SELECT col_name [...] INTO var_name[,...]
FROM table_name WEHRE condition
其中:
-
col_name 參數列示查詢的欄位名稱;
-
var_name 引數是變數的名稱;
-
table_name 引數指表的名稱;
-
condition 引數指查詢條件。
注意:當將查詢結果賦值給變數時,該查詢語句的返回結果只能是單行。
例 3
下面從 tb_student 表中查詢 id 為 2 的記錄,將該記錄的 id 值賦給變數 my_sql。SQL 語句如下:
SELECT id INTO my_sql FROM tb_student WEHRE id=2;