最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于MySQL的存儲(chǔ)函數(shù)(自定義函數(shù))的定義和使用方法詳解

 更新時(shí)間:2018年03月19日 17:38:31   投稿:wdc  
本文主要講解了關(guān)于MySQL的存儲(chǔ)函數(shù)(自定義函數(shù))的定義和使用方法詳解與存儲(chǔ)函數(shù)與存儲(chǔ)過(guò)程的區(qū)別

存儲(chǔ)函數(shù)

什么是存儲(chǔ)函數(shù): 封裝一段sql代碼,完成一種特定的功能,返回結(jié)果。

存儲(chǔ)函數(shù)的語(yǔ)法:

create function 函數(shù)([函數(shù)參數(shù)[,….]]) Returns 返回類(lèi)型

  Begin

    If(

      Return (返回的數(shù)據(jù))

    Else 

      Return (返回的數(shù)據(jù))

    end if;

  end;

例如: create function count_news(hits int) returns int

與存儲(chǔ)過(guò)程返回參數(shù)不同的是存儲(chǔ)函數(shù)在定義時(shí)沒(méi)用直接聲明哪個(gè)變量是返回參數(shù),而只是使用了returns聲明了返回參數(shù)所屬的數(shù)據(jù)類(lèi)型,返回參數(shù)是在函數(shù)體中使用return返回要返回的數(shù)據(jù)變量的形式來(lái)表示的。這就需要注意的是:
存儲(chǔ)函數(shù)只支持輸入?yún)?shù),并且輸入?yún)?shù)前沒(méi)有IN或INOUT.

存儲(chǔ)函數(shù)中的限制

流控制(Flow-of-control)語(yǔ)句(IF, CASE, WHILE, LOOP, WHILE, REPEAT, LEAVE,ITERATE)也是合法的.

變量聲明(DECLARE)以及指派(SET)是合法的.

允許條件聲明.

異常處理聲明也是允許的.

但是在這里要記住函數(shù)有受限條件:不能在函數(shù)中訪問(wèn)表.因此在函數(shù)中使用以下語(yǔ)句是非法的。

ALTER 'CACHE INDEX' CALL COMMIT CREATE DELETE
DROP 'FLUSH PRIVILEGES' GRANT INSERT KILL
LOCK OPTIMIZE REPAIR REPLACE REVOKE
ROLLBACK SAVEPOINT 'SELECT FROM table'
'SET system variable' 'SET TRANSACTION'
SHOW 'START TRANSACTION' TRUNCATE UPDATE

存儲(chǔ)函數(shù)與存儲(chǔ)過(guò)程的區(qū)別

一、 存儲(chǔ)函數(shù)有且只有一個(gè)返回值,而存儲(chǔ)過(guò)程不能有返回值。

二、 函數(shù)只能有輸入?yún)?shù),而且不能帶in, 而存儲(chǔ)過(guò)程可以有多個(gè)in,out,inout參數(shù)。

三、 存儲(chǔ)過(guò)程中的語(yǔ)句功能更強(qiáng)大,存儲(chǔ)過(guò)程可以實(shí)現(xiàn)很復(fù)雜的業(yè)務(wù)邏輯,而函數(shù)有很多限制,如不能在函數(shù)中使用insert,update,delete,create等語(yǔ)句;存儲(chǔ)函數(shù)只完成查詢(xún)的工作,可接受輸入?yún)?shù)并返回一個(gè)結(jié)果,也就是函數(shù)實(shí)現(xiàn)的功能針對(duì)性比較強(qiáng)。

四、 存儲(chǔ)過(guò)程可以調(diào)用存儲(chǔ)函數(shù)。但函數(shù)不能調(diào)用存儲(chǔ)過(guò)程。

五、 存儲(chǔ)過(guò)程一般是作為一個(gè)獨(dú)立的部分來(lái)執(zhí)行(call調(diào)用)。而函數(shù)可以作為查詢(xún)語(yǔ)句的一個(gè)部分來(lái)調(diào)用。

實(shí)例1:

Id

Name 

QQ

phone

秦云 

10102800

13500000

在路上

10378

13600000

LEO

10000

  13900000

Id

Name 

上機(jī)時(shí)間

管理員

1

秦云 

2004-1-1 

李大偉

2

秦云

2005-1-1

馬化騰

在路上 

2005-1-1 

馬化騰

秦云

2005-1-1

李大偉

5

在路上

2005-1-1

李大偉

實(shí)現(xiàn)目的:

從表1中取所有人員列表,從表2中取上機(jī)次數(shù)和管理員.

上機(jī)人員名單    上機(jī)次數(shù)             管理員
秦云               3             李大偉,馬化騰,李大偉
在路上           2            馬化騰,李大偉
LEO              0     

相關(guān)文章

最新評(píng)論

化州市| 耒阳市| 江孜县| 子长县| 黔西县| 荣成市| 黔西| 张掖市| 东乌珠穆沁旗| 沁水县| 资阳市| 南陵县| 正安县| 海宁市| 伊金霍洛旗| 松滋市| 本溪市| 松滋市| 麻江县| 兴安盟| 象山县| 淮南市| 巴林左旗| 遵义县| 金平| 阳原县| 东海县| 泽州县| 双柏县| 南漳县| 克拉玛依市| 连城县| 桐柏县| 阳高县| 周至县| 略阳县| 光山县| 三江| 太仆寺旗| 张北县| 宁津县|