mysql 存儲(chǔ)過(guò)程中變量的定義與賦值操作
更新時(shí)間:2010年05月20日 01:15:46 作者:
昨天我們講了mysql存儲(chǔ)過(guò)程創(chuàng)建修改與刪除,下面我們這篇教程是講關(guān)于mysql存儲(chǔ)過(guò)程中變量的定義賦值操作哦。
一、變量的定義
mysql中變量定義用declare來(lái)定義一局部變量,該變量的使用范圍只能在begin...end 塊中使用,變量必須定義在復(fù)合語(yǔ)句的開(kāi)頭,并且是在其它語(yǔ)句之前,也可以同時(shí)申明多個(gè)變量,如果需要,可以使用default賦默認(rèn)值。
定義一個(gè)變量語(yǔ)法如下:
declare var_name[,...] type[default value]看一個(gè)變量定義實(shí)例
declare last date;二、mysql存儲(chǔ)過(guò)程變量賦值
變量的賦值可直接賦值與查詢(xún)賦值來(lái)操作,直接賦值可以用set來(lái)操作,可以是常量或表達(dá)式如果下
set var_name= [,var_name expr]...給上面的last變量賦值方法如下
set last = date_sub( current_date(),interval 1 month);下面看通過(guò)查詢(xún)給變量賦值,要求查詢(xún)返回的結(jié)果必須為一行,具體操作如下
select col into var_name[,...] table_expr我們來(lái)通過(guò)查詢(xún)給v_pay賦值。
create function get _cost(p_custid int,p_eff datetime)
return decimal(5,2)
deterministic
reads sql data
begin
declare v_pay decimail(5,2);
select ifnull( sum(pay.amount),0) into vpay from payment where pay.payd<=p_eff and pay.custid=pid
reutrn v_rent + v_over - v_pay;
end $$
好了,這篇簡(jiǎn)單的存儲(chǔ)過(guò)程中變量的定義賦值教程就到這里了,下面我們會(huì)接著講關(guān)于myql存儲(chǔ)過(guò)程的條件的定義與處理。
以下是其它網(wǎng)友的補(bǔ)充
在MySQL的存儲(chǔ)過(guò)程中,可以使用變量,它用于保存處理過(guò)程中的值。
定義變量使用DECLARE語(yǔ)句,語(yǔ)法格式如下:
DECLARE var_name[,...] type [DEFAULT value]
其中,var_name為變量名稱(chēng),type為MySQL支持的任何數(shù)據(jù)類(lèi)型,可選項(xiàng)[DEFAULT value]為變量指定默認(rèn)值。一次可以定義多個(gè)同類(lèi)型的變量,各變量名稱(chēng)之間以逗號(hào)“,”隔開(kāi)。
定義與使用變量時(shí)需要注意以下幾點(diǎn):
◆ DECLARE語(yǔ)句必須用在DEGIN…END語(yǔ)句塊中,并且必須出現(xiàn)在DEGIN…END語(yǔ)句塊的最前面,即出現(xiàn)在其他語(yǔ)句之前。
◆ DECLARE定義的變量的作用范圍僅限于DECLARE語(yǔ)句所在的DEGIN…END塊內(nèi)及嵌套在該塊內(nèi)的其他DEGIN…END塊。
◆ 存儲(chǔ)過(guò)程中的變量名不區(qū)分大小寫(xiě)。
定義后的變量采用SET語(yǔ)句進(jìn)行賦值,語(yǔ)法格式如下:
SET var_name = expr [,var_name = expr] ...
其中,var_name為變量名,expr為值或者返回值的表達(dá)式,可以使任何MySQL支持的返回值的表達(dá)式。一次可以為多個(gè)變量賦值,多個(gè)“變量名=值”對(duì)之間以逗號(hào)“,”隔開(kāi)。
例如:
begin
declare no varchar(20);
declare title varchar(30);
set no='101010',title='存儲(chǔ)過(guò)程中定義變量與賦值';
end
提示:存儲(chǔ)過(guò)程中所有的關(guān)鍵字也是不區(qū)分大小寫(xiě)的,如BEGIN可以寫(xiě)出begin。
mysql中變量定義用declare來(lái)定義一局部變量,該變量的使用范圍只能在begin...end 塊中使用,變量必須定義在復(fù)合語(yǔ)句的開(kāi)頭,并且是在其它語(yǔ)句之前,也可以同時(shí)申明多個(gè)變量,如果需要,可以使用default賦默認(rèn)值。
定義一個(gè)變量語(yǔ)法如下:
declare var_name[,...] type[default value]看一個(gè)變量定義實(shí)例
declare last date;二、mysql存儲(chǔ)過(guò)程變量賦值
變量的賦值可直接賦值與查詢(xún)賦值來(lái)操作,直接賦值可以用set來(lái)操作,可以是常量或表達(dá)式如果下
復(fù)制代碼 代碼如下:
set var_name= [,var_name expr]...給上面的last變量賦值方法如下
set last = date_sub( current_date(),interval 1 month);下面看通過(guò)查詢(xún)給變量賦值,要求查詢(xún)返回的結(jié)果必須為一行,具體操作如下
select col into var_name[,...] table_expr我們來(lái)通過(guò)查詢(xún)給v_pay賦值。
create function get _cost(p_custid int,p_eff datetime)
return decimal(5,2)
deterministic
reads sql data
begin
declare v_pay decimail(5,2);
select ifnull( sum(pay.amount),0) into vpay from payment where pay.payd<=p_eff and pay.custid=pid
reutrn v_rent + v_over - v_pay;
end $$
好了,這篇簡(jiǎn)單的存儲(chǔ)過(guò)程中變量的定義賦值教程就到這里了,下面我們會(huì)接著講關(guān)于myql存儲(chǔ)過(guò)程的條件的定義與處理。
以下是其它網(wǎng)友的補(bǔ)充
在MySQL的存儲(chǔ)過(guò)程中,可以使用變量,它用于保存處理過(guò)程中的值。
定義變量使用DECLARE語(yǔ)句,語(yǔ)法格式如下:
DECLARE var_name[,...] type [DEFAULT value]
其中,var_name為變量名稱(chēng),type為MySQL支持的任何數(shù)據(jù)類(lèi)型,可選項(xiàng)[DEFAULT value]為變量指定默認(rèn)值。一次可以定義多個(gè)同類(lèi)型的變量,各變量名稱(chēng)之間以逗號(hào)“,”隔開(kāi)。
定義與使用變量時(shí)需要注意以下幾點(diǎn):
◆ DECLARE語(yǔ)句必須用在DEGIN…END語(yǔ)句塊中,并且必須出現(xiàn)在DEGIN…END語(yǔ)句塊的最前面,即出現(xiàn)在其他語(yǔ)句之前。
◆ DECLARE定義的變量的作用范圍僅限于DECLARE語(yǔ)句所在的DEGIN…END塊內(nèi)及嵌套在該塊內(nèi)的其他DEGIN…END塊。
◆ 存儲(chǔ)過(guò)程中的變量名不區(qū)分大小寫(xiě)。
定義后的變量采用SET語(yǔ)句進(jìn)行賦值,語(yǔ)法格式如下:
SET var_name = expr [,var_name = expr] ...
其中,var_name為變量名,expr為值或者返回值的表達(dá)式,可以使任何MySQL支持的返回值的表達(dá)式。一次可以為多個(gè)變量賦值,多個(gè)“變量名=值”對(duì)之間以逗號(hào)“,”隔開(kāi)。
例如:
復(fù)制代碼 代碼如下:
begin
declare no varchar(20);
declare title varchar(30);
set no='101010',title='存儲(chǔ)過(guò)程中定義變量與賦值';
end
提示:存儲(chǔ)過(guò)程中所有的關(guān)鍵字也是不區(qū)分大小寫(xiě)的,如BEGIN可以寫(xiě)出begin。
相關(guān)文章
redhat7通過(guò)yum安裝mysql5.7.17教程
這篇文章主要為大家詳細(xì)介紹了redhat7通過(guò)yum安裝mysql5.7.17教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
mysql為字段添加和刪除唯一性索引(unique) 的方法
下面小編就為大家?guī)?lái)一篇mysql為字段添加和刪除唯一性索引(unique) 的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
MySQL essential版本和普通版本有什么區(qū)別?
安裝mysql的朋友可能會(huì)發(fā)現(xiàn)有時(shí)候我們看到essential版本,究竟與其它mysql版本有什么區(qū)別呢,這里簡(jiǎn)單介紹下2013-06-06
探究MySQL中索引和提交頻率對(duì)InnoDB表寫(xiě)入速度的影響
這篇文章主要介紹了MySQL中索引和提交頻率對(duì)InnoDB表寫(xiě)入速度的影響,作者通過(guò)實(shí)際測(cè)試運(yùn)行時(shí)間的對(duì)比來(lái)驗(yàn)證,需要的朋友可以參考下2015-05-05
MySQL拋出Incorrect string value異常分析
從上至下統(tǒng)一用上UTF-8就高枕無(wú)憂,今天還是遇到字符的異常,本文將介紹解決方法2012-11-11
簡(jiǎn)單了解標(biāo)準(zhǔn)SQL的update語(yǔ)句三種用法
這篇文章主要介紹了簡(jiǎn)單了解標(biāo)準(zhǔn)SQL的update語(yǔ)句三種用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下2019-06-06

