如何使用mysql自定義函數(shù)

這篇文章主要講解了如何使用MySQL自定義函數(shù),內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

創(chuàng)新互聯(lián)是專業(yè)的睢陽網(wǎng)站建設(shè)公司,睢陽接單;提供成都做網(wǎng)站、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行睢陽網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

什么是函數(shù):

  • 函數(shù)存儲(chǔ)著一系列sql語句,調(diào)用函數(shù)就是一次性執(zhí)行這些語句。所以函數(shù)可以降低語句重復(fù)?!镜⒁獾氖呛瘮?shù)注重返回值,不注重執(zhí)行過程,所以一些語句無法執(zhí)行。所以函數(shù)并不是單純的sql語句集合?!?/li>
  • mysql函數(shù)有自己的自定義函數(shù)(已經(jīng)定義好了的函數(shù)),想了解更多的可以參考我的另一篇博文:mysql常用函數(shù)
  • 這里主要介紹如何自定義函數(shù)。

補(bǔ)充:

  • 函數(shù)與存儲(chǔ)過程的區(qū)別:函數(shù)只會(huì)返回一個(gè)值,不允許返回一個(gè)結(jié)果集。函數(shù)強(qiáng)調(diào)返回值,所以函數(shù)不允許返回多個(gè)值的情況,即使是查詢語句。
    -- 不行的代碼:Not allowed to return a result set from a function
    create function myf()returns int 
    begin
    select * from student;
    return 100;
    end;

函數(shù)的創(chuàng)建:

  • 語法:
    create function 函數(shù)名([參數(shù)列表]) returns 數(shù)據(jù)類型
    begin
     sql語句;
     return 值;
    end;
     
    • 參數(shù)列表的格式是:  變量名 數(shù)據(jù)類型
  • 示例:
    -- 最簡單的僅有一條sql的函數(shù)
    create function myselect2() returns int return 666;
    select myselect2(); -- 調(diào)用函數(shù)
    
    --
    create function myselect3() returns int
    begin 
      declare c int;
      select id from class where cname="python" into c;
      return c;
    end;
    select myselect3();
    -- 帶傳參的函數(shù)
    create function myselect5(name varchar(15)) returns int
    begin 
      declare c int;
      select id from class where cname=name into c;
      return c;
    end;
    select myselect5("python");
     

補(bǔ)充:

  • 還可以有一些特別的選項(xiàng),特別的選項(xiàng)寫在return  之后,begin之前,如:
    • comment:一個(gè)關(guān)于函數(shù)的描述
    • 還有一些比如sql security等選項(xiàng),有興趣可以自行百度。這里不講解,僅一提有此知識(shí)點(diǎn)。

函數(shù)的調(diào)用:

  • 直接使用函數(shù)名()就可以調(diào)用【雖然這么說,但返回的是一個(gè)結(jié)果,sql中不使用select的話任何結(jié)果都無法顯示出來(所以單純調(diào)用會(huì)報(bào)錯(cuò)),】
  • 如果想要傳入?yún)?shù)可以使用函數(shù)名(參數(shù))
  • 調(diào)用方式【下面調(diào)用的函數(shù)都是上面中創(chuàng)建的?!浚?div>
    -- 無參調(diào)用
    select myselect3();
    -- 傳參調(diào)用
    select myselect5("python");
    select * from class where id=myselect5("python");

函數(shù)的查看:


函數(shù)的修改:


函數(shù)的刪除:

看完上述內(nèi)容,是不是對(duì)如何使用mysql自定義函數(shù)有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站名稱:如何使用mysql自定義函數(shù)
瀏覽路徑:http://bm7419.com/article10/psdsgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)Google、虛擬主機(jī)、App開發(fā)、移動(dòng)網(wǎng)站建設(shè)品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

猜你還喜歡下面的內(nèi)容

成都網(wǎng)站建設(shè)公司

解決方案知識(shí)

同城分類信息