mysql中學(xué)是怎么定義 mysql中文是什么數(shù)據(jù)類型

mysql 存儲(chǔ)過(guò)程中變量的定義與賦值操作

一、變量的定義

創(chuàng)新互聯(lián)2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元青龍做網(wǎng)站,已為上家服務(wù),為青龍各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575

mysql中變量定義用declare來(lái)定義一局部變量,該變量的使用范圍只能在begin...end

塊中使用,變量必須定義在復(fù)合語(yǔ)句的開頭,并且是在其它語(yǔ)句之前,也可以同時(shí)申明多個(gè)變量,如果需要,可以使用default賦默認(rèn)值。

定義一個(gè)變量語(yǔ)法如下:

declare

var_name[,...]

type[default

value]看一個(gè)變量定義實(shí)例

declare

last

date;二、mysql存儲(chǔ)過(guò)程變量賦值

變量的賦值可直接賦值與查詢賦值來(lái)操作,直接賦值可以用set來(lái)操作,可以是常量或表達(dá)式如果下

復(fù)制代碼

代碼如下:

set

var_name=

[,var_name

expr]...給上面的last變量賦值方法如下

set

last

=

date_sub(

current_date(),interval

1

month);下面看通過(guò)查詢給變量賦值,要求查詢返回的結(jié)果必須為一行,具體操作如下

select

col

into

var_name[,...]

table_expr我們來(lái)通過(guò)查詢給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為變量名稱,type為MySQL支持的任何數(shù)據(jù)類型,可選項(xiàng)[DEFAULT

value]為變量指定默認(rèn)值。一次可以定義多個(gè)同類型的變量,各變量名稱之間以逗號(hào)“,”隔開。

定義與使用變量時(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ū)分大小寫。

定義后的變量采用SET語(yǔ)句進(jìn)行賦值,語(yǔ)法格式如下:

SET

var_name

=

expr

[,var_name

=

expr]

...

其中,var_name為變量名,expr為值或者返回值的表達(dá)式,可以使任何MySQL支持的返回值的表達(dá)式。一次可以為多個(gè)變量賦值,多個(gè)“變量名=值”對(duì)之間以逗號(hào)“,”隔開。

例如:

復(fù)制代碼

代碼如下:

begin

declare

no

varchar(20);

declare

title

varchar(30);

set

no='101010',title='存儲(chǔ)過(guò)程中定義變量與賦值';

end

提示:存儲(chǔ)過(guò)程中所有的關(guān)鍵字也是不區(qū)分大小寫的,如BEGIN可以寫出begin。

MySQL存儲(chǔ)過(guò)程里怎么定義一個(gè)參數(shù)類型和表的變量類型一樣?

MySQL存儲(chǔ)過(guò)程中,定義變量有兩種方式:

? 1、使用set或select直接賦值,變量名以@開頭,可以在一個(gè)會(huì)話(即連接)的任何地方聲明,作用域是整個(gè)會(huì)話,稱為用戶變量。例如:set @var=1;

? 2、 以declare關(guān)鍵字聲明的變量,只能在存儲(chǔ)過(guò)程中使用,稱為存儲(chǔ)過(guò)程變量,主要用在存儲(chǔ)過(guò)程中,或者是給存儲(chǔ)傳參數(shù)中。例如: declare var1 int default 0;

兩者的區(qū)別是:

? ? 在調(diào)用存儲(chǔ)過(guò)程時(shí),以declare聲明的變量都會(huì)被初始化為null。而會(huì)話變量(即@開頭的變量)則不會(huì)被再初始化,在一個(gè)會(huì)話(連接)內(nèi),只須初始化一次,之后在會(huì)話內(nèi)都是對(duì)上一次計(jì)算的結(jié)果,就相當(dāng)于在是這個(gè)會(huì)話內(nèi)的全局變量。

mysql怎么定義變量?

下面是一個(gè)簡(jiǎn)單的 存儲(chǔ)過(guò)程的例子.

DECLARE v_index INT;

定義一個(gè) 名稱為 v_index 的變量, 類型為 INT

MYSQL 變量定義應(yīng)該只能在 存儲(chǔ)過(guò)程, 函數(shù)里面定義.

不像 Oracle / SQL Server , 一個(gè) BEGIN / END 里面就可以定義/執(zhí)行了。

mysql DELIMITER //

mysql CREATE PROCEDURE TestWhile()

- BEGIN

- DECLARE v_index INT;

-

- SET v_index = 0;

-

- WHILE v_index 5 DO

- SET v_index = v_index + 1;

- SELECT v_index;

- END WHILE;

-

- END//

Query OK, 0 rows affected (0.00 sec)

mysql中如何定義變量

測(cè)試一下, 好像是可行的呀!

mysql?select?@test?:=?1;

+------------+

|?@test?:=?1?|

+------------+

|??????????1?|

+------------+

1?row?in?set?(0.00?sec)

mysql?select?*?from?test_main;

+----+-------+

|?id?|?value?|

+----+-------+

|??1?|?ONE???|

|??2?|?TWO???|

|??3?|?THREE?|

+----+-------+

3?rows?in?set?(0.00?sec)

mysql?select?*?from?test_main?where?id??@test;

+----+-------+

|?id?|?value?|

+----+-------+

|??2?|?TWO???|

|??3?|?THREE?|

+----+-------+

2?rows?in?set?(0.00?sec)

網(wǎng)站標(biāo)題:mysql中學(xué)是怎么定義 mysql中文是什么數(shù)據(jù)類型
URL分享:http://bm7419.com/article36/ddepisg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、虛擬主機(jī)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)