mysql 存储例程

时间:2024-04-06 19:29:37

1、定义

 

存储例程是存储在服务器中的一组指定的 SQL 语句:

客户机无需不断重新发出单个语句,而可以改为引用存储例程。

存储例程类型:

存储过程:通过 CALL 语句调用过程。这些过程可以使用输出变量或结果集传回值。

存储函数:在语句中调用函数。这些函数可返回标量值。

 

2、存储过程:示例

 

示例1

 

mysql> delimiter //

mysql> create procedure detail ()

-> begin

-> select ‘lastname’,count(*) from employees;

-> select ‘orderDates’,count(*) from orders;

-> select ‘city’,count(*) from offices;

->end//

mysql> delimiter ;

第一个 DELIMITER 语句用于将 SQL 语句终止字符更改为两个正斜杠 (//)。此更改可确保客户机不会将复合语句中的分号解释为语句分隔符,并确保客户机不会过早地将 CREATE PROCEDURE 语句发送到服务器。当创建存储例程的语句以// 终止时,客户机会先将该语句发送到服务器,然后再发出第二个 DELIMITER 语句将语句分隔符重置为分号

 

mysql 存储例程 

mysql 存储例程 

 

示例2

 

mysql> create function pay_check(gross_pay float(9,2),tax_rate float(3,2))

    -> returns float(9,2)

    -> no sql

    -> begin

    -> declare net_pay float(9,2)

    -> default 0;

    -> set net_pay=gross_pay - gross_pay * tax_rate;

    -> return net_pay;

-> end//

RETURNS 子句

RETURNS 子句用于确定此函数要返回的值的类型。

mysql 存储例程 

mysql 存储例程 

 

3、查看例程

show create procedure 例程名

mysql 存储例程 

 

show create function 例程名

 mysql 存储例程

 

4、删除例程

drop function classicmodels.pay_check;

mysql 存储例程 

(图中是以’//’为结束符)

 

 

 

部分内容来自:oracle官方中文版mysql dba学习指南