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

首頁 > 數據庫 > MySQL > 正文

如何運用mysql自定義函數

2024-07-24 12:35:45
字體:
來源:轉載
供稿:網友
  這篇文章主要講解了如何使用mysql自定義函數,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
 
  什么是函數:
  函數存儲著一系列sql語句,調用函數就是一次性執行這些語句。所以函數可以降低語句重復。【但注意的是函數注重返回值,不注重執行過程,所以一些語句無法執行。所以函數并不是單純的sql語句集合。】
  mysql函數有自己的自定義函數(已經定義好了的函數),想了解更多的可以參考我的另一篇博文:mysql常用函數
  這里主要介紹如何自定義函數。
  補充:
  函數與存儲過程的區別:函數只會返回一個值,不允許返回一個結果集。函數強調返回值,所以函數不允許返回多個值的情況,即使是查詢語句。
  -- 不行的代碼:Not allowed to return a result set from a function
  create function myf()returns int
  begin
  select * 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 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的話任何結果都無法顯示出來(所以單純調用會報錯),】
  如果想要傳入參數可以使用函數名(參數)
  調用方式【下面調用的函數都是上面中創建的。】:
  -- 無參調用
  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自定義函數有進一步的了解。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汉阴县| 垫江县| 缙云县| 赤水市| 和平区| 桑日县| 芮城县| 襄汾县| 乐业县| 化州市| 德化县| 嘉义县| 云林县| 利辛县| 乐东| 平阳县| 杭锦后旗| 阿巴嘎旗| 连平县| 西盟| 耿马| 本溪| 定襄县| 苍山县| 甘德县| 长武县| 湟源县| 钦州市| 临沂市| 棋牌| 宁远县| 河东区| 德阳市| 和林格尔县| 莲花县| 渝北区| 渝北区| 封丘县| 阳新县| 漳浦县| 砚山县|