新聞中心
mysql 存儲過程中變量的定義與賦值操作
一、變量的定義

創(chuàng)新互聯(lián)主營文成網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶App定制開發(fā),文成h5小程序定制開發(fā)搭建,文成網(wǎng)站營銷推廣歡迎文成等地區(qū)企業(yè)咨詢
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。
mysql 怎么定義變量
一、局部變量
局部變量一般用在sql語句塊中,比如存儲過程的begin/end。其作用域僅限于該語句塊,在該語句塊執(zhí)行完畢后,局部變量就消失了。
局部變量一般用declare來聲明,可以使用default來說明默認值。
二、用戶變量
用戶變量的作用域要比局部變量要廣。用戶變量可以作用于當(dāng)前整個連接,但是當(dāng)當(dāng)前連接斷開后,其所定義的用戶變量都會消失。
用戶變量使用如下(這里我們無須使用declare關(guān)鍵字進行定義,可以直接這樣使用):
select @變量名
對用戶變量賦值有兩種方式,一種是直接用"="號,另一種是用":="號。其區(qū)別在于使用set命令對用戶變量進行賦值時,兩種方式都可以使用;當(dāng)使用select語句對用戶變量進行賦值時,只能使用":="方式,因為在select語句中,"="號被看作是比較操作符。
如何使用變量向mysql中插入數(shù)據(jù)
在select 語句中賦值給用戶變量的語法是 @ var_name := value ,這里的var_name 是變量名,value是正檢索的值.
1:變量可以用在以后語句中表達式可用的任何地方,例如where字句或者insert 語句中。
例如select @id :=cust_id from customers where cust_id='customer name';
delete from orders where cust_id = @id;
2:變量的另一個用途是保存在一個auto_increment列的表中 插入新的一行后last_insert_id()的結(jié)果
select @last_id :=Last_INSERT_ID();
LAST_INSERT_ID()返回新的AUTO_INCREMENT列值,通過將其保存在變量中,你可以在之后的語句中多次引用該值。
即使發(fā)起其他的語句創(chuàng)建他們自身的atuo_increment值,從而改變了last_insert_id()返回的值
3:用戶變量擁有單一的值,如果使用返回多行的語句來將值賦給一個變量,那么只有最后一行的值被賦給了該變量。
4:要將一個變量顯示地設(shè)為一個特定值,使用set語句,set語法可以使用:=或者=來進行賦值
5:set也可以用來將一個select的結(jié)果賦給一個變量.
mysql數(shù)據(jù)庫中存儲過程如何處理變量
用select...into語句。
這個SELECT語法把選定的列直接存儲到變量。因此,只有單一的行可以被取回。
重要:
SQL變量名不能和列名一樣。如果SELECT ... INTO這樣的SQL語句包含一個對列的參考,并包含一個與列相同名字的局部變量,MySQL當(dāng)前把參考解釋為一個變量的名字。例如,在下面的語句中,xname 被解釋為到xname variable 的參考而不是到xname column的:
CREATE PROCEDURE sp1 (x VARCHAR(5)) BEGIN DECLARE xname VARCHAR(5) DEFAULT 'bob'; DECLARE newname VARCHAR(5); DECLARE xid INT; SELECT xname,id INTO newname,xid FROM table1 WHERE xname = xname; SELECT newname; END;
當(dāng)這個程序被調(diào)用的時候,無論table.xname列的值是什么,變量newname將返回值‘bob’。
分享題目:mysql語句怎么變量,mysql 變量使用
當(dāng)前網(wǎng)址:http://fisionsoft.com.cn/article/hohjih.html


咨詢
建站咨詢
