91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql中創建用戶自定義函數

發布時間:2020-04-10 03:49:03 來源:網絡 閱讀:10384 作者:梧桐深院 欄目:MySQL數據庫

總有一些復雜的邏輯我們還需要多處使用,此時就顯現出函數的重要性。

mysql函數的要素

  • 函數名
  • 參數列表
  • 函數體
  • 返回值

    定義語法

    create function fun_name(參數列表)
    returns 返回值類型
    函數體

    示例

    不帶參數

    delimiter $$
    create function sayhello() 
    returns varchar(20)
    begin
    return 'hello';
    end$$ 
    delimiter ;

    調用示例:
    select sayhello();

sayhello()
hello

帶參數(參數需要標明數據類型)

    delimiter $$
    create function sayHelloToSomeOne(name varchar(20))
    returns varchar(25)
    begin
    set @str = concat('hello ',name);
    return @str;
    end
    $$
    delimiter ;

調用示例:
select sayHelloToSomeOne('Dany');

sayHelloToSomeOne('Dany')
hello Dany

函數調用過后我們驗證一下@str變量是否依然可以訪問。
select @str;

@str
hello Dany

@str依然可用,說明@str的作用域是全局的。

帶多個參數

多個參數用逗號 , 分隔。

函數中的局部變量

  1. 參數(勉強認為是局部變量),因為參數傳遞進來只能在函數內部使用。
  2. declare 定義局部變量
    之前研究過以@開頭的變量是全局變量,因為即使是在函數內部定義的變量例如:@aa ,在調用過函數后,@aa的值在外部我們依然可以得到,這就很明顯的告訴我們,@aa是全局變量。
    全局變量容易引發變量污染,所以我們需要局部變量,來保證程序獨立。declare就是為了解決這一問題。

語法:
DECLARE var_name [, var_name] ... type [DEFAULT value];
例如:

    delimiter $$
    create function sayHelloToSomeOneVarLocal(name varchar(20))
    returns varchar(30)
    begin
    declare str varchar(30);
    set str = concat('hello ',name);
    return str;
    end
    $$
    delimiter ;

select sayHelloToSomeOneVarLocal('xiaogang');

sayHelloToSomeOneVarLocal('xiaogang')
hello xiaogang

函數調用之后我們再試圖去訪問變量str,會報錯。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

连平县| 潼关县| 崇信县| 句容市| 嘉黎县| 普洱| 桃园县| 安平县| 建昌县| 青海省| 云南省| 白山市| 游戏| 全州县| 平乡县| 通许县| 高阳县| 莱阳市| 岗巴县| 正镶白旗| 峨眉山市| 新营市| 双城市| 华安县| 乐山市| 千阳县| 龙川县| 苍溪县| 汝城县| 崇州市| 乐业县| 固始县| 祁东县| 永泰县| 鄂尔多斯市| 磐石市| 澜沧| 莲花县| 库伦旗| 聂拉木县| 常宁市|