国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

MySQL中存儲函數的示例分析

發(fā)布時(shí)間:2021-08-08 19:37 來(lái)源:億速云 閱讀:0 作者:小新 欄目: Mysql 歡迎投稿:712375056

這篇文章將為大家詳細講解有關(guān)中存儲函數的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

存儲函數

什么是存儲函數: 封裝一段sql代碼,完成一種特定的功能,返回結果。

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

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

  Begin

    If(

      Return (返回的數據)

    Else 

      Return (返回的數據)

    end if;

  end;

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

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

存儲函數中的限制

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

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

允許條件聲明.

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

但是在這里要記住函數有受限條件:不能在函數中訪(fǎng)問(wèn)表.因此在函數中使用以下語(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

存儲函數與存儲過(guò)程的區別

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

二、 函數只能有輸入參數,而且不能帶in, 而存儲過(guò)程可以有多個(gè)in,out,inout參數。

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

四、 存儲過(guò)程可以調用存儲函數。但函數不能調用存儲過(guò)程。

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

實(shí)例1:

實(shí)現目的:

從表1中取所有人員列表,從表2中取上機次數和管理員.

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

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

18国产精品白浆在线观看免费| 无套内射在线无码播放| 色老板精品视频在线观看| 成人免费无码不卡毛片| 国产JIZZJIZZ免费看| 日产AV基地无码内射|