在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫/ MariaDB函數(shù)
MariaDB比較運算符
MariaDB查詢數(shù)據(jù)
MariaDB Like子句
MariaDB Sum()函數(shù)
MariaDB過程
MariaDB限制返回記錄
MariaDB Count()函數(shù)
MariaDB更新數(shù)據(jù)
MariaDB導(dǎo)出數(shù)據(jù)
MariaDB Intersect運算符
MariaDB函數(shù)
MariaDB Min()函數(shù)
MariaDB創(chuàng)建數(shù)據(jù)庫
MariaDB Avg()函數(shù)
MariaDB刪除數(shù)據(jù)
MariaDB條件
MariaDB功能特點
MariaDB創(chuàng)建表
MariaDB左外連接
MariaDB Union運算符
MariaDB安裝
MariaDB選擇數(shù)據(jù)庫
MariaDB Max()函數(shù)
MariaDB Where子句
MariaDB右外連接
MariaDB內(nèi)連接
MariaDB截斷表
MariaDB Order By子句
MariaDB教程
MariaDB正則表達(dá)式
MariaDB Union All運算符
MariaDB Distinct子句
MariaDB修改表
MariaDB刪除表
MariaDB插入數(shù)據(jù)
MariaDB From子句
MariaDB刪除數(shù)據(jù)庫
MariaDB簡介
MariaDB數(shù)據(jù)類型

MariaDB函數(shù)

MariaDB函數(shù)是一個存儲的程序,用于將參數(shù)傳遞給它們并獲取函數(shù)的返回值。

我們可以在MariaDB中創(chuàng)建和刪除函數(shù)。

1. MariaDB創(chuàng)建函數(shù)

可以在MariaDB中創(chuàng)建自己的函數(shù):

語法:

CREATE   
[ DEFINER = { CURRENT_USER | user_name } ]   
FUNCTION function_name [ (parameter datatype [, parameter datatype]) ]  
RETURNS return_datatype [ LANGUAGE SQL  
| DETERMINISTIC  
| NOT DETERMINISTIC  
| { CONTAINS SQL   
| NO SQL  
| READS SQL DATA  
| MODIFIES SQL DATA }  
| SQL SECURITY { DEFINER | INVOKER }  
| COMMENT 'comment_value'  
BEGIN  
   declaration_section  
   executable_section  
END;

1. 創(chuàng)建函數(shù)

在MariaDB數(shù)據(jù)庫中創(chuàng)建一個函數(shù)CalcValue。參考下面代碼 -

DELIMITER //
CREATE FUNCTION CalcValue ( starting_value INT )
RETURNS INT DETERMINISTIC
BEGIN
   DECLARE total_value INT;
   SET total_value = 0;
   label1: WHILE total_value <= 3000 DO
     SET total_value = total_value + starting_value;
   END WHILE label1;
   RETURN total_value;
END; //
DELIMITER ;

參數(shù)說明

  • DEFINER子句:它是一個可選的子句。如果沒有指定,定義者是創(chuàng)建函數(shù)的用戶。 如果您希望指定不同的定義者,則必須包含DEFINER子句,其中user_name是該函數(shù)的定義者。
  • function_name:指定要在MariaDB中分配給此函數(shù)的名稱。
  • return_datatype:它指定函數(shù)返回值的數(shù)據(jù)類型。
  • LANGUAGE SQL:語法為可移植語法,但不會影響函數(shù)。
  • DETERMINISTIC:表示該函數(shù)將總是返回給定一組輸入?yún)?shù)的一個結(jié)果。
  • NOT DETERMINISTIC:表示給定一組輸入?yún)?shù),該函數(shù)可能會返回不同的結(jié)果。 結(jié)果可能受到表數(shù)據(jù),隨機(jī)數(shù)字或服務(wù)器變量的影響。
  • CONTAINS SQL:這是默認(rèn)的。這是一個告知MariaDB該函數(shù)包含SQL的信息性子句,但數(shù)據(jù)庫不驗證為真。
  • NO SQL:沒有使用的信息性子句將不會影響函數(shù)。
  • READS SQL DATA:一個告知MariaDB該函數(shù)將使用SELECT語句讀取數(shù)據(jù)但不修改任何數(shù)據(jù)的信息性子句。
  • MODIFIES SQL DATA:一個告知MariaDB該函數(shù)將使用INSERT,UPDATEDELETE或其他DDL語句修改SQL數(shù)據(jù)的信息性子句。
  • declaration_section:聲明局部變量的函數(shù)的地方。
  • executable_section:在函數(shù)中輸入函數(shù)代碼的地方。

2. 調(diào)用函數(shù)

可以看到程序成功執(zhí)行并創(chuàng)建了一個新的函數(shù)?,F(xiàn)在可以調(diào)用這個新創(chuàng)建的函數(shù)了,如下所示:

3. 刪除函數(shù)

要刪除MariaDB數(shù)據(jù)庫中的自定義函數(shù)很容易。比如要上我們上面創(chuàng)建的函數(shù),請參考以下語法。

語法:

DROP FUNCTION [ IF EXISTS ] function_name;

參數(shù)說明

  • function_name:它指定想要刪除的函數(shù)的名字。

示例:

在上面,我們已經(jīng)創(chuàng)建了一個名為“CalcValue”的函數(shù)。假設(shè)現(xiàn)在要刪除這個函數(shù),可通過以下語句 -

DROP FUNCTION CalcValue;

現(xiàn)在,可以看到該函數(shù)已被刪除,不再出現(xiàn)在左側(cè)列表中。

或通過查詢下面語句 -

MariaDB [testdb]> SELECT *, EVENT_SCHEMA AS `Db`, EVENT_NAME AS `Name` FROM information_schema.`EVENTS` WHERE `EVENT_SCHEMA`='testdb';
Empty set (0.01 sec)