mysql 存儲過程中變量的定義與賦值操作
更新時間:2010年05月20日 01:15:46 作者:
昨天我們講了mysql存儲過程創(chuàng)建修改與刪除,下面我們這篇教程是講關(guān)于mysql存儲過程中變量的定義賦值操作哦。
一、變量的定義
mysql中變量定義用declare來定義一局部變量,該變量的使用范圍只能在begin...end 塊中使用,變量必須定義在復(fù)合語句的開頭,并且是在其它語句之前,也可以同時申明多個變量,如果需要,可以使用default賦默認值。
定義一個變量語法如下:
declare var_name[,...] type[default value]看一個變量定義實例
declare last date;二、mysql存儲過程變量賦值
變量的賦值可直接賦值與查詢賦值來操作,直接賦值可以用set來操作,可以是常量或表達式如果下
set var_name= [,var_name expr]...給上面的last變量賦值方法如下
set last = date_sub( current_date(),interval 1 month);下面看通過查詢給變量賦值,要求查詢返回的結(jié)果必須為一行,具體操作如下
select col into var_name[,...] table_expr我們來通過查詢給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 $$
好了,這篇簡單的存儲過程中變量的定義賦值教程就到這里了,下面我們會接著講關(guān)于myql存儲過程的條件的定義與處理。
以下是其它網(wǎng)友的補充
在MySQL的存儲過程中,可以使用變量,它用于保存處理過程中的值。
定義變量使用DECLARE語句,語法格式如下:
DECLARE var_name[,...] type [DEFAULT value]
其中,var_name為變量名稱,type為MySQL支持的任何數(shù)據(jù)類型,可選項[DEFAULT value]為變量指定默認值。一次可以定義多個同類型的變量,各變量名稱之間以逗號“,”隔開。
定義與使用變量時需要注意以下幾點:
◆ DECLARE語句必須用在DEGIN…END語句塊中,并且必須出現(xiàn)在DEGIN…END語句塊的最前面,即出現(xiàn)在其他語句之前。
◆ DECLARE定義的變量的作用范圍僅限于DECLARE語句所在的DEGIN…END塊內(nèi)及嵌套在該塊內(nèi)的其他DEGIN…END塊。
◆ 存儲過程中的變量名不區(qū)分大小寫。
定義后的變量采用SET語句進行賦值,語法格式如下:
SET var_name = expr [,var_name = expr] ...
其中,var_name為變量名,expr為值或者返回值的表達式,可以使任何MySQL支持的返回值的表達式。一次可以為多個變量賦值,多個“變量名=值”對之間以逗號“,”隔開。
例如:
begin
declare no varchar(20);
declare title varchar(30);
set no='101010',title='存儲過程中定義變量與賦值';
end
提示:存儲過程中所有的關(guān)鍵字也是不區(qū)分大小寫的,如BEGIN可以寫出begin。
mysql中變量定義用declare來定義一局部變量,該變量的使用范圍只能在begin...end 塊中使用,變量必須定義在復(fù)合語句的開頭,并且是在其它語句之前,也可以同時申明多個變量,如果需要,可以使用default賦默認值。
定義一個變量語法如下:
declare var_name[,...] type[default value]看一個變量定義實例
declare last date;二、mysql存儲過程變量賦值
變量的賦值可直接賦值與查詢賦值來操作,直接賦值可以用set來操作,可以是常量或表達式如果下
復(fù)制代碼 代碼如下:
set var_name= [,var_name expr]...給上面的last變量賦值方法如下
set last = date_sub( current_date(),interval 1 month);下面看通過查詢給變量賦值,要求查詢返回的結(jié)果必須為一行,具體操作如下
select col into var_name[,...] table_expr我們來通過查詢給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 $$
好了,這篇簡單的存儲過程中變量的定義賦值教程就到這里了,下面我們會接著講關(guān)于myql存儲過程的條件的定義與處理。
以下是其它網(wǎng)友的補充
在MySQL的存儲過程中,可以使用變量,它用于保存處理過程中的值。
定義變量使用DECLARE語句,語法格式如下:
DECLARE var_name[,...] type [DEFAULT value]
其中,var_name為變量名稱,type為MySQL支持的任何數(shù)據(jù)類型,可選項[DEFAULT value]為變量指定默認值。一次可以定義多個同類型的變量,各變量名稱之間以逗號“,”隔開。
定義與使用變量時需要注意以下幾點:
◆ DECLARE語句必須用在DEGIN…END語句塊中,并且必須出現(xiàn)在DEGIN…END語句塊的最前面,即出現(xiàn)在其他語句之前。
◆ DECLARE定義的變量的作用范圍僅限于DECLARE語句所在的DEGIN…END塊內(nèi)及嵌套在該塊內(nèi)的其他DEGIN…END塊。
◆ 存儲過程中的變量名不區(qū)分大小寫。
定義后的變量采用SET語句進行賦值,語法格式如下:
SET var_name = expr [,var_name = expr] ...
其中,var_name為變量名,expr為值或者返回值的表達式,可以使任何MySQL支持的返回值的表達式。一次可以為多個變量賦值,多個“變量名=值”對之間以逗號“,”隔開。
例如:
復(fù)制代碼 代碼如下:
begin
declare no varchar(20);
declare title varchar(30);
set no='101010',title='存儲過程中定義變量與賦值';
end
提示:存儲過程中所有的關(guān)鍵字也是不區(qū)分大小寫的,如BEGIN可以寫出begin。
相關(guān)文章
Navicat連接MySQL時報10060、1045錯誤及my.ini位置問題
這篇文章主要介紹了Navicat連接MySQL的10060及1045報錯,my.ini位置,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03MySQL 存儲過程傳參數(shù)實現(xiàn)where id in(1,2,3,...)示例
一個MySQL 存儲過程傳參數(shù)的問題想實現(xiàn)例如篩選條件為:where id in(1,2,3,...),下面有個不錯的示例,感興趣的朋友可以參考下2013-10-10MySQL根據(jù)條件遷移數(shù)據(jù)的幾種方法實現(xiàn)
本文主要介紹了MySQL根據(jù)條件遷移數(shù)據(jù)的實現(xiàn),包括使用INSERT INTO SELECT、UPDATE、DELETE語句以及結(jié)合子查詢進行遷移,具有一定的參考價值,感興趣的可以了解一下2024-02-02mysql的MVCC多版本并發(fā)控制的實現(xiàn)
這篇文章主要介紹了mysql的MVCC多版本并發(fā)控制的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04mysql創(chuàng)建用戶并賦予用戶權(quán)限詳細操作教程
這篇文章主要給大家介紹了關(guān)于mysql創(chuàng)建用戶并賦予用戶權(quán)限詳細操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12