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

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

MariaDB函數(shù)

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

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

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

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

語(yǔ)法:

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ù)庫(kù)中創(chuàng)建一個(gè)函數(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ù)說(shuō)明

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

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

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

3. 刪除函數(shù)

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

語(yǔ)法:

DROP FUNCTION [ IF EXISTS ] function_name;

參數(shù)說(shuō)明

  • function_name:它指定想要?jiǎng)h除的函數(shù)的名字。

示例:

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

DROP FUNCTION CalcValue;

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

或通過(guò)查詢下面語(yǔ)句 -

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