- MariaDB简介
- MariaDB功能特点
- MariaDB安装
- MariaDB数据类型
- 数据库和表
- CRUD操作
- MariaDB子句
- 聚合函数
- MariaDB连接
- MariaDB操作符
- MariaDB高级部分
MariaDB过程
MariaDB程序是一个存储的程序,用来传递参数。它不像函数那样需要返回一个值(当然也不用返回)。
可以创建和删除像函数一样的过程。
1. 创建过程
可以像创建MariaDB中的函数一样创建过程。
语法:
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;
参数说明
- DEFINER:可选。
- procedure_name:在MariaDB中分配给此过程的名称。
- Parameter:传入过程的一个或多个参数。创建过程时,可以声明三种类型的参数:
- IN:参数可以被程序引用。 该参数的值不能被程序覆盖。
- OUT:参数不能被程序引用,但参数的值可以被程序覆盖。
- IN OUT:参数可以被程序引用,参数的值可以被程序覆盖。
- LANGUAGE SQL:语法为可移植语法,但不会影响函数。
- DETERMINISTIC:表示该函数将始终返回给定一组输入参数的一个结果。
- NOT DETERMINISTIC:表示给定一组输入参数,该函数可能会返回不同的结果。 结果可能受到表格数据,随机数字或服务器变量的影响。
- CONTAINS SQL:这是默认的。这是一个告知MariaDB该函数包含SQL的信息性子句,但数据库不验证它是真的。
- NO SQL:这是一个信息性子句,不使用也不会影响功能。
- READS SQL DATA:这是一个告知MariaDB的函数,它将使用
SELECT
语句读取数据,但不会修改任何数据。 - MODIFIES SQL DATA:这是一个告知MariaDB的信息子句,该函数将使用
INSERT
,UPDATE
,DELETE
或其他DDL语句修改SQL数据。 - declaration_section:声明局部变量的过程中的位置。
- executable_section:输入过程代码的过程中的位置。
示例
在MariaDB数据库中创建一个名为“CalcValue”
的过程。参考以下实现代码 -
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,执行上面创建语句 -
现在刷新左侧的testdb数据库,可以看到名为“CalcValue”的过程已创建。
编辑或查看这个过程,如下图所示 -
2. 调用过程
现在可以看到名为“CalcValue”的过程已创建。可以参考如下方式来调用过程:
MariaDB [testdb]> CALL CalcValue(@salary); Query OK, 0 rows affected (0.00 sec) MariaDB [testdb]> select @salary; +---------+ | @salary | +---------+ | 3200 | +---------+ row in set (0.00 sec)
3. 删除过程
可以使用以下命令删除过程:
语法:
DROP procedure [ IF EXISTS ] procedure_name;
参数说明:
- procedure_name:它指定要删除的过程的名称。
示例:
DROP procedure CalcValue;
可以看到现在过程已经被删除,并且在列表中不可见。
上一篇:MariaDB函数
下一篇:MariaDB正则表达式
关注微信小程序
扫描二维码
程序员编程王