欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql自定義函數原理與用法實例分析

 更新時間:2020年04月17日 11:53:23   作者:隨風行云  
這篇文章主要介紹了mysql自定義函數,結合實例形式分析了mysql自定義函數基本功能、原理、用法及操作注意事項,需要的朋友可以參考下

本文實例講述了mysql自定義函數原理與用法。分享給大家供大家參考,具體如下:

本文內容:

  • 什么是函數
  • 函數的創(chuàng)建
  • 函數的調用
  • 函數的查看
  • 函數的修改
  • 函數的刪除

首發(fā)日期:2018-04-18


什么是函數:

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

補充:

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

函數的創(chuàng)建:

  • 語法:
    create function 函數名([參數列表]) returns 數據類型
    begin
     sql語句;
     return 值;
    end;
    • 參數列表的格式是:  變量名 數據類型
  • 示例:
    -- 最簡單的僅有一條sql的函數
    create function myselect2() returns int return 666;
    select myselect2(); -- 調用函數
    
    --
    create function myselect3() returns int
    begin 
      declare c int;
      select id from class where cname="python" into c;
      return c;
    end;
    select myselect3();
    -- 帶傳參的函數
    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");

補充:

  • 還可以有一些特別的選項,特別的選項寫在return  之后,begin之前,如:
    • comment:一個關于函數的描述
    • 還有一些比如sql security等選項,有興趣可以自行百度。這里不講解,僅一提有此知識點。

函數的調用:

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

函數的查看:

  • 查看函數創(chuàng)建語句:show create function 函數名;
  • 查看所有函數:show function status [like 'pattern'];

函數的修改:

  • 函數的修改只能修改一些如comment的選項,不能修改內部的sql語句和參數列表。
  • alter function 函數名 選項;

函數的刪除:

  • drop function 函數名;

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL常用函數大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數據庫鎖相關技巧匯總

希望本文所述對大家MySQL數據庫計有所幫助。

相關文章

  • 為MySQL安裝配置代理工具Kingshard的基本教程

    為MySQL安裝配置代理工具Kingshard的基本教程

    這篇文章主要介紹了為MySQL安裝配置代理工具Kingshard的基本教程,Kingshard由Go語言寫成,可以實現讀寫分離和客戶端IP訪問控制等功能,非常強大,需要的朋友可以參考下
    2015-12-12
  • 如何恢復Mysql數據庫的詳細介紹

    如何恢復Mysql數據庫的詳細介紹

    這里說的MySql恢復數據庫,是指沒有通過正常備份的情況下,通過Mysql保存的數據文件如何恢復數據庫
    2013-09-09
  • MySQL 角色(role)功能介紹

    MySQL 角色(role)功能介紹

    這篇文章主要介紹了MySQL 角色(role)功能的相關資料,幫助大家更好的理解和學習使用MySQL數據庫,感興趣的朋友可以了解下
    2021-04-04
  • MySql 中聚合函數增加條件表達式的方法

    MySql 中聚合函數增加條件表達式的方法

    這篇文章主要介紹了MySql 中聚合函數增加條件表達式的方法,需要的朋友可以參考下
    2018-06-06
  • MySQL兩個查詢如何合并成一個結果詳解

    MySQL兩個查詢如何合并成一個結果詳解

    利用union關鍵字,可以給出多條select語句,并將它們的結果組合成單個結果集,下面這篇文章主要給大家介紹了關于MySQL兩個查詢如何合并成一個結果的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • MySQL5.73?root用戶密碼修改方法及ERROR?1193、ERROR1819與ERROR1290報錯解決

    MySQL5.73?root用戶密碼修改方法及ERROR?1193、ERROR1819與ERROR1290報錯解決

    這篇文章主要給大家介紹了關于MySQL5.73?root用戶密碼修改方法及ERROR?1193、ERROR1819與ERROR1290:...?running?with?--skip-...報錯的解決方法,文中通過圖文將解決的步驟介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • RHEL6.2編譯安裝MySQL 5.6.16過程分享

    RHEL6.2編譯安裝MySQL 5.6.16過程分享

    這篇文章主要介紹了RHEL6.2編譯安裝MySQL 5.6.16過程分享,還包括了mysql_secure_installation腳本運行指導,需要的朋友可以參考下
    2014-07-07
  • Mysql?刪除重復數據保留一條有效數據(最新推薦)

    Mysql?刪除重復數據保留一條有效數據(最新推薦)

    這篇文章主要介紹了Mysql?刪除重復數據保留一條有效數據,實現原理也很簡單,mysql刪除重復數據,多個字段分組操作,結合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • Mysql實現簡易版搜索引擎的示例代碼

    Mysql實現簡易版搜索引擎的示例代碼

    前段時間,因為項目需求,需要根據關鍵詞搜索聊天記錄,所以本文實現了Mysql實現簡易版搜索引擎,具有一定的參考價值,感興趣的可以了解一下
    2021-08-08
  • MySQL查詢表中重復數據的實現

    MySQL查詢表中重復數據的實現

    在數據庫中,我們經常需要查詢重復字段來確保數據的準確性,如果數據中有重復字段,則可能會導致查詢結果錯誤,本文就想詳細的介紹了MySQL查詢表中重復數據,感興趣的可以了解一下
    2023-08-08

最新評論