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 语句将语句分隔符重置为分号
示例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 子句用于确定此函数要返回的值的类型。
3、查看例程
show create procedure 例程名
show create function 例程名
4、删除例程
drop function classicmodels.pay_check;
(图中是以’//’为结束符)
部分内容来自:oracle官方中文版mysql dba学习指南