MySQL變數的定義和賦值

2020-07-16 10:05:25
在 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;