mysql自定義函數原理與用法實例分析
本文實例講述了mysql自定義函數原理與用法。分享給大家供大家參考,具體如下:
本文內容: 什么是函數 函數的創建 函數的調用 函數的查看 函數的修改 函數的刪除首發日期:2018-04-18
什么是函數: 函數存儲著一系列sql語句,調用函數就是一次性執行這些語句。所以函數可以降低語句重復。【但注意的是函數注重返回值,不注重執行過程,所以一些語句無法執行。所以函數并不是單純的sql語句集合。】 mysql函數有自己的自定義函數(已經定義好了的函數),想了解更多的可以參考我的另一篇博文:mysql常用函數 這里主要介紹如何自定義函數。補充: 函數與存儲過程的區別:函數只會返回一個值,不允許返回一個結果集。函數強調返回值,所以函數不允許返回多個值的情況,即使是查詢語句。-- 不行的代碼:Not allowed to return a result set from a functioncreate function myf()returns int beginselect * from student;return 100;end; 函數的創建: 語法:
create function 函數名([參數列表]) returns 數據類型begin sql語句; return 值;end;參數列表的格式是: 變量名 數據類型 示例:
-- 最簡單的僅有一條sql的函數create function myselect2() returns int return 666;select myselect2(); -- 調用函數--create function myselect3() returns intbegin declare c int; select id from class where cname='python' into c; return c;end;select myselect3();-- 帶傳參的函數create function myselect5(name varchar(15)) returns intbegin 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的話任何結果都無法顯示出來(所以單純調用會報錯),】 如果想要傳入參數可以使用函數名(參數) 調用方式【下面調用的函數都是上面中創建的。】:
-- 無參調用select myselect3();-- 傳參調用select myselect5('python');select * from class where id=myselect5('python'); 函數的查看: 查看函數創建語句:show create function 函數名; 查看所有函數:show function status [like ’pattern’];函數的修改: 函數的修改只能修改一些如comment的選項,不能修改內部的sql語句和參數列表。 alter function 函數名 選項;函數的刪除: drop function 函數名;
更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL常用函數大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數據庫鎖相關技巧匯總》
希望本文所述對大家MySQL數據庫計有所幫助。
相關文章:
