濮阳杆衣贸易有限公司

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

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

熱門標(biāo)簽:甘孜電話機(jī)器人廠家 中科嘉智人工智能電銷機(jī)器人 做地圖標(biāo)注都需要什么工具 電銷機(jī)器人好品牌門薩維l 上海智能外呼系統(tǒng)需要多少錢 銀川電銷外呼系統(tǒng)定制 西安400電話在哪里辦理 哈爾濱crm外呼系統(tǒng)價(jià)格 凱立德科技館地圖標(biāo)注

存儲函數(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ù),而只是使用了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ù)有且只有一個返回值,而存儲過程不能有返回值。

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

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

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

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

實(shí)例1:

Id

Name 

QQ

phone

秦云 

10102800

13500000

在路上

10378

13600000

LEO

10000

  13900000

Id

Name 

上機(jī)時間

管理員

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     

您可能感興趣的文章:
  • MySQL 自定義函數(shù)CREATE FUNCTION示例
  • 深入mysql創(chuàng)建自定義函數(shù)與存儲過程的詳解
  • MySQL中文漢字轉(zhuǎn)拼音的自定義函數(shù)和使用實(shí)例(首字的首字母)
  • 淺談mysql 自定義函數(shù)
  • Mysql中實(shí)現(xiàn)提取字符串中的數(shù)字的自定義函數(shù)分享
  • mysql建立自定義函數(shù)的問題
  • MySQL自定義函數(shù)簡單用法示例
  • MYSQL自定義函數(shù)判斷是否正整數(shù)的實(shí)例代碼
  • MySQL自定義函數(shù)和存儲過程示例詳解
  • MySQL通過自定義函數(shù)實(shí)現(xiàn)遞歸查詢父級ID或者子級ID
  • mysql自定義函數(shù)原理與用法實(shí)例分析

標(biāo)簽:那曲 安康 四川 濮陽 山南 安徽 浙江 平頂山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《關(guān)于MySQL的存儲函數(shù)(自定義函數(shù))的定義和使用方法詳解》,本文關(guān)鍵詞  關(guān)于,MySQL,的,存儲,函數(shù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《關(guān)于MySQL的存儲函數(shù)(自定義函數(shù))的定義和使用方法詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于關(guān)于MySQL的存儲函數(shù)(自定義函數(shù))的定義和使用方法詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    宁乡县| 西青区| 多伦县| 淄博市| 景德镇市| 东海县| 凤山市| 安康市| 祁东县| 云梦县| 德兴市| 高清| 江油市| 乐清市| 通江县| 榆社县| 安陆市| 东港市| 湘潭县| 新晃| 西和县| 贵德县| 安西县| 伊通| 定陶县| 河津市| 沙湾县| 诸城市| 林西县| 洞头县| 孝义市| 皋兰县| 汝城县| 浦江县| 景东| 肥城市| 新民市| 湘潭市| 威信县| 漳州市| 类乌齐县|