中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中存儲函數的示例分析

發布時間:2021-07-29 10:42:09 來源:億速云 閱讀:191 作者:小新 欄目:MySQL數據庫

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

存儲函數

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

存儲函數的語法:

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

  Begin

    If(

      Return (返回的數據)

    Else 

      Return (返回的數據)

    end if;

  end;

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

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

存儲函數中的限制

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

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

允許條件聲明.

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

但是在這里要記住函數有受限條件:不能在函數中訪問表.因此在函數中使用以下語句是非法的。

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

存儲函數與存儲過程的區別

一、 存儲函數有且只有一個返回值,而存儲過程不能有返回值。

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

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

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

五、 存儲過程一般是作為一個獨立的部分來執行(call調用)。而函數可以作為查詢語句的一個部分來調用。

實例1:

Id

Name 

QQ

phone

秦云 

10102800

13500000

在路上

10378

13600000

LEO

10000

  13900000

Id

Name 

上機時間

管理員

1

秦云 

2004-1-1 

李大偉

2

秦云

2005-1-1

馬化騰

在路上 

2005-1-1 

馬化騰

秦云

2005-1-1

李大偉

5

在路上

2005-1-1

李大偉

實現目的:

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

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

關于“MySQL中存儲函數的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永新县| 威海市| 鸡西市| 西乌珠穆沁旗| 丽江市| 吉安县| 北流市| 中卫市| 桐梓县| 永德县| 铜山县| 南宫市| 威信县| 响水县| 隆林| 汕头市| 鹿泉市| 新兴县| 山阳县| 龙井市| 波密县| 洮南市| 吴旗县| 巩留县| 衢州市| 龙岩市| 安顺市| 南部县| 钦州市| 仁怀市| 枝江市| 邹城市| 陆川县| 陆河县| 青川县| 宾阳县| 深圳市| 淳安县| 灵石县| 武威市| 津市市|