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

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

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

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

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

@anyVariableName;

登錄后復(fù)制

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

SET @anyVariableName=anyValue;

登錄后復(fù)制

第二種方法如下:

SELECT @anyVariableName :=anyValue;

登錄后復(fù)制

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

mysql> select @m=10;

登錄后復(fù)制

以下是輸出:

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

登錄后復(fù)制

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

局部變量的語法如下。

DECLARE yourVariableName dataType;

登錄后復(fù)制

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

這里是會話特定變量和局部變量的演示與存儲過程。創(chuàng)建帶有局部變量和用戶定義變量的存儲過程的查詢?nèi)缦拢?/p>

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 ;

登錄后復(fù)制

現(xiàn)在設(shè)置用戶定義變量的值。查詢?nèi)缦拢?/p>

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

登錄后復(fù)制

現(xiàn)在調(diào)用存儲過程。第一次調(diào)用時(shí),用戶定義變量為 10+10=20,局部變量為 10+10=20。

使用 call 命令調(diào)用存儲過程:

mysql> CALL sp_LocalAndUserDefinedVariableDemo();

登錄后復(fù)制登錄后復(fù)制

以下是輸出:

+---------------+
| 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)

登錄后復(fù)制

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

調(diào)用存儲過程并檢查示例輸出:

mysql> CALL sp_LocalAndUserDefinedVariableDemo();

登錄后復(fù)制登錄后復(fù)制

以下是輸出:

+---------------+
| 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)

登錄后復(fù)制

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

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

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

分享到:
標(biāo)簽:MySQL 變量 定義 局部 用戶
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定