一、局部變量
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設,神農(nóng)架林區(qū)企業(yè)網(wǎng)站建設,神農(nóng)架林區(qū)品牌網(wǎng)站建設,網(wǎng)站定制,神農(nóng)架林區(qū)網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,神農(nóng)架林區(qū)網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
局部變量一般用在sql語句塊中,比如存儲過程的begin/end。其作用域僅限于該語句塊,在該語句塊執(zhí)行完畢后,局部變量就消失了。
局部變量一般用declare來聲明,可以使用default來說明默認值。
二、用戶變量
用戶變量的作用域要比局部變量要廣。用戶變量可以作用于當前整個連接,但是當當前連接斷開后,其所定義的用戶變量都會消失。
用戶變量使用如下(這里我們無須使用declare關鍵字進行定義,可以直接這樣使用):
select @變量名
對用戶變量賦值有兩種方式,一種是直接用"="號,另一種是用":="號。其區(qū)別在于使用set命令對用戶變量進行賦值時,兩種方式都可以使用;當使用select語句對用戶變量進行賦值時,只能使用":="方式,因為在select語句中,"="號被看作是比較操作符。
MySQL存儲過程中,定義變量有兩種方式:
? 1、使用set或select直接賦值,變量名以@開頭,可以在一個會話(即連接)的任何地方聲明,作用域是整個會話,稱為用戶變量。例如:set @var=1;
? 2、 以declare關鍵字聲明的變量,只能在存儲過程中使用,稱為存儲過程變量,主要用在存儲過程中,或者是給存儲傳參數(shù)中。例如: declare var1 int default 0;
兩者的區(qū)別是:
? ? 在調(diào)用存儲過程時,以declare聲明的變量都會被初始化為null。而會話變量(即@開頭的變量)則不會被再初始化,在一個會話(連接)內(nèi),只須初始化一次,之后在會話內(nèi)都是對上一次計算的結(jié)果,就相當于在是這個會話內(nèi)的全局變量。
以 DECLARE 關鍵字聲明的變量,只能在存儲過程中使用,稱為存儲過程變量,
例如:
DECLARE var1 INT DEFAULT 0;
主要用在存儲過程中,或者是給存儲傳參數(shù)中。