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

鍍金池/ 教程/ 數(shù)據(jù)庫/ MariaDB過程
MariaDB比較運算符
MariaDB查詢數(shù)據(jù)
MariaDB Like子句
MariaDB Sum()函數(shù)
MariaDB過程
MariaDB限制返回記錄
MariaDB Count()函數(shù)
MariaDB更新數(shù)據(jù)
MariaDB導出數(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正則表達式
MariaDB Union All運算符
MariaDB Distinct子句
MariaDB修改表
MariaDB刪除表
MariaDB插入數(shù)據(jù)
MariaDB From子句
MariaDB刪除數(shù)據(jù)庫
MariaDB簡介
MariaDB數(shù)據(jù)類型

MariaDB過程

MariaDB程序是一個存儲的程序,用來傳遞參數(shù)。它不像函數(shù)那樣需要返回一個值(當然也不用返回)。

可以創(chuàng)建和刪除像函數(shù)一樣的過程。

1. 創(chuàng)建過程

可以像創(chuàng)建MariaDB中的函數(shù)一樣創(chuàng)建過程。

語法:

CREATE   
[ DEFINER = { CURRENT_USER | user_name } ]   
PROCEDURE procedure_name [ (parameter datatype [, parameter 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;

參數(shù)說明

  • DEFINER:可選。
  • procedure_name:在MariaDB中分配給此過程的名稱。
  • Parameter:傳入過程的一個或多個參數(shù)。創(chuàng)建過程時,可以聲明三種類型的參數(shù):
    • IN:參數(shù)可以被程序引用。 該參數(shù)的值不能被程序覆蓋。
    • OUT:參數(shù)不能被程序引用,但參數(shù)的值可以被程序覆蓋。
    • IN OUT:參數(shù)可以被程序引用,參數(shù)的值可以被程序覆蓋。
  • LANGUAGE SQL:語法為可移植語法,但不會影響函數(shù)。
  • DETERMINISTIC:表示該函數(shù)將始終返回給定一組輸入?yún)?shù)的一個結(jié)果。
  • NOT DETERMINISTIC:表示給定一組輸入?yún)?shù),該函數(shù)可能會返回不同的結(jié)果。 結(jié)果可能受到表格數(shù)據(jù),隨機數(shù)字或服務器變量的影響。
  • CONTAINS SQL:這是默認的。這是一個告知MariaDB該函數(shù)包含SQL的信息性子句,但數(shù)據(jù)庫不驗證它是真的。
  • NO SQL:這是一個信息性子句,不使用也不會影響功能。
  • READS SQL DATA:這是一個告知MariaDB的函數(shù),它將使用SELECT語句讀取數(shù)據(jù),但不會修改任何數(shù)據(jù)。
  • MODIFIES SQL DATA:這是一個告知MariaDB的信息子句,該函數(shù)將使用INSERTUPDATE,DELETE或其他DDL語句修改SQL數(shù)據(jù)。
  • declaration_section:聲明局部變量的過程中的位置。
  • executable_section:輸入過程代碼的過程中的位置。

示例

在MariaDB數(shù)據(jù)庫中創(chuàng)建一個名為“CalcValue”的過程。參考以下實現(xiàn)代碼 -

DELIMITER //  
CREATE procedure CalcValue ( OUT ending_value INT )  
DETERMINISTIC  
BEGIN  
   DECLARE total_value INT;  
   SET total_value = 50;  
   label1: WHILE total_value <= 3000 DO  
     SET total_value = total_value * 2;  
   END WHILE label1;  
   SET ending_value = total_value;  
END; //  
DELIMITER ;

打開HeidiSQL,執(zhí)行上面創(chuàng)建語句 -

現(xiàn)在刷新左側(cè)的testdb數(shù)據(jù)庫,可以看到名為“CalcValue”的過程已創(chuàng)建。

編輯或查看這個過程,如下圖所示 -

2. 調(diào)用過程

現(xiàn)在可以看到名為“CalcValue”的過程已創(chuàng)建??梢詤⒖既缦路绞絹碚{(diào)用過程:

MariaDB [testdb]> CALL CalcValue(@salary);
Query OK, 0 rows affected (0.00 sec)

MariaDB [testdb]> select @salary;
+---------+
| @salary |
+---------+
|    3200 |
+---------+
1 row in set (0.00 sec)

3. 刪除過程

可以使用以下命令刪除過程:

語法:

DROP procedure [ IF EXISTS ] procedure_name;

參數(shù)說明:

  • procedure_name:它指定要刪除的過程的名稱。

示例:

DROP procedure CalcValue;

可以看到現(xiàn)在過程已經(jīng)被刪除,并且在列表中不可見。