日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

用戶定義的變量也稱為會話特定變量。它是一種松散類型變量,可以在會話中的某個位置進行初始化,并包含用戶定義變量的值,直到會話結束。

用戶定義變量以符號 @ 為前綴。例如:

@anyVariableName;

登錄后復制

有兩種方法可以初始化用戶定義的變量。您可以使用 SET 命令或使用 SELECT 查詢。第一種方法如下:

SET @anyVariableName=anyValue;

登錄后復制

第二種方法如下:

SELECT @anyVariableName :=anyValue;

登錄后復制

如果您在 SELECT 查詢中不使用冒號 (:),則會將其計算為表達式。結果要么為真,要么為假:

mysql> select @m=10;

登錄后復制

以下是輸出:

+-------+
| @m=10 |
+-------+
|     1 |
+-------+
1 row in set (0.00 sec)

登錄后復制

局部變量可以在存儲過程、函數等中使用,與DECLARE關鍵字一起使用。不需要像用戶定義變量那樣的@前綴。

局部變量的語法如下。

DECLARE yourVariableName dataType;

登錄后復制

注意:局部變量和用戶定義變量之間的主要區別在于,每次調用存儲過程時,局部變量都會用 NULL 值重新初始化,而會話特定變量或用戶定義變量則不會。未使用 NULL 重新初始化。一個用戶設置的用戶定義變量不能被其他用戶看到。給定用戶的任何會話變量都會在用戶退出時自動銷毀。

這里是會話特定變量和局部變量的演示與存儲過程。創建帶有局部變量和用戶定義變量的存儲過程的查詢如下:

mysql> DELIMITER //
mysql> CREATE PROCEDURE sp_LocalAndUserDefinedVariableDemo()
   -> BEGIN
   -> DECLARE localVariable int default 10;
   -> SET localVariable=localVariable+10;  
   -> SET @userVariable=@userVariable+10;
   -> SELECT localVariable;
   -> SELECT @userVariable;
   -> END;
   -> //
Query OK, 0 rows affected (0.39 sec)
mysql> DELIMITER ;

登錄后復制

現在設置用戶定義變量的值。查詢如下:

mysql> SET @userVariable=10;
Query OK, 0 rows affected (0.00 sec)

登錄后復制

現在調用存儲過程。第一次調用時,用戶定義變量為 10+10=20,局部變量為 10+10=20。

使用 call 命令調用存儲過程:

mysql> CALL sp_LocalAndUserDefinedVariableDemo();

登錄后復制登錄后復制

以下是輸出:

+---------------+
| localVariable |
+---------------+
|            20 |
+---------------+
1 row in set (0.32 sec)
+---------------+
| @userVariable |
+---------------+
|            20 |
+---------------+
1 row in set (0.34 sec)
Query OK, 0 rows affected (0.36 sec)

登錄后復制

在第二次調用中,用戶定義的變量將保存值 20 并添加 10,如 20+10=30,而局部變量再次用 10 重新初始化并添加 10,如 10+10=20。

調用存儲過程并檢查示例輸出:

mysql> CALL sp_LocalAndUserDefinedVariableDemo();

登錄后復制登錄后復制

以下是輸出:

+---------------+
| localVariable |
+---------------+
|            20 |
+---------------+
1 row in set (0.00 sec)
+---------------+
| @userVariable |
+---------------+
|            30 |
+---------------+
1 row in set (0.01 sec)
Query OK, 0 rows affected (0.02 sec)

登錄后復制

在第三次調用中,用戶定義的變量將保存值 30 并添加 10,如 30+10=40,而局部變量再次使用 10 重新初始化并添加 10,如 10+10=20。

現在你可以說,在每個過程調用中,局部變量都用某個值重新初始化,該值可能是 NULL 或其他值,就像在我的例子中,我提供了默認值 10。這意味著它將局部變量設置為值 10每個過程調用,而用戶定義的變量則不然。

以上就是MySQL 中的用戶定義變量與局部變量?的詳細內容,更多請關注www.92cms.cn其它相關文章!

分享到:
標簽:MySQL 變量 定義 局部 用戶
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定