国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

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

2024-07-24 12:50:31
字體:
供稿:網(wǎng)友

存儲函數(shù)

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

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

create function 函數(shù)([函數(shù)參數(shù)[,….]]) Returns 返回類型  Begin    If(      Return (返回的數(shù)據(jù))    Else       Return (返回的數(shù)據(jù))    end if;  end;

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

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

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

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

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

允許條件聲明.

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

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

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

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

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

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

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

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

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

實(shí)例1:

  • <style id="6x8um"></style>
    <td id="6x8um"></td>

    Id

    Name 

    QQ

    phone

    秦云 

    10102800

    13500000

    在路上

    10378

    13600000

    LEO

    發(fā)表評論 共有條評論
    用戶名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表
    主站蜘蛛池模板: 台州市| 灵寿县| 科尔| 沅陵县| 静宁县| 永春县| 布尔津县| 盈江县| 安岳县| 鹰潭市| 湖南省| 怀仁县| 兴和县| 纳雍县| 郁南县| 丹棱县| 清原| 清丰县| 巨鹿县| 祁连县| 磐安县| 通城县| 裕民县| 集贤县| 海口市| 堆龙德庆县| 石家庄市| 无棣县| 衡阳市| 油尖旺区| 大冶市| 浦县| 恩平市| 汉寿县| 阿城市| 博湖县| 太和县| 东平县| 宁乡县| 吉安市| 拜泉县|