一个存储过程可以看作是一组 SQL 指令的整合,类似于一组命令的集合,但它的功能并不仅限于执行批量操作。
在 MySQL 中,要建立存储程序,所应用的指令是 。其基础写法规范为:
定义一个存储过程,其名称为sp_name,接受一个参数,该参数的类型为proc_parameter,并具有特定的属性特征,过程体部分包含具体的实现逻辑。
1) 为用来创建存储过程的关键字;
2) 为存储过程的名称;
3) 为指定存储过程的参数列表,列表形式如下:
参数名称具有输入,输出或双向属性,其数据类型为指定类型
其中,IN 代表作为输入的变量,OUT 代表作为输出的变量,INOUT 代表既可以作为输入也可以作为输出; 后面跟着的是变量的名称;type 指的是变量的类型,这个类型可以是 MySQL 数据库中存在的任何一种类型。
4) 指定存储过程的特性,有以下取值:
这是 SQL 脚本的部分,可以用起始…终止来标明 SQL 脚本的起始和终止位置。
设计存储程序并非易事,里面或许涉及结构繁复的数据库查询指令,并且执行前必须具备相应的授权;不过借助存储程序能够简化流程,削减不必要的环节,另外还能降低执行期间的偏差,提升成效,所以说存储程序相当有价值,大家应当努力掌握其应用方法。
这段文字展示了存储操作的细节,其称号为 ,能够计算全部果品的均价,编写方式如下:
制定一个名为AvgFruitPrice的过程,用于计算平均水果价格,该过程不包含任何参数,可以直接执行以获取结果
BEGIN
计算平均价格,结果命名为avgprice
FROM fruits;
END;
这段代码里,那个存储过程的名称是 ,采用 () 语法来构建。该存储过程不带任何参数输入,不过括号 () 还是必须保留。BEGIN 和 END 语句负责框定存储过程的主体内容,整个程序逻辑其实只包含了一条基础指令(AVG 是计算字段平均数的函数)。
【实例】创建查看 表的存储过程,代码如下:
CREATE PROCEDURE Proc()
BEGIN
SELECT * FROM fruits;
END ;
这段程序定义了一个用于检视数据表的数据库子程序,每当启动该子程序,便会运行查询指令来检索数据表中的数据,具体操作步骤如下:
MySQL> DELIMITER // MySQL中,可以建立一个名为Proc的过程,通过以下方式定义 -> BEGIN -> SELECT * FROM fruits; -> END // 查询成功,没有数据被改动,用时零点零零秒 MySQL> DELIMITER ;
这个存储过程跟使用单个语句查询表所获得的结果相同,当然存储过程可以包含多个语句的复杂组合,就像例子开头展示的那个语句一样,那个语句本身也能调用其他函数,从而实现更复杂的操作。
这个符号用来更改 MySQL 的终止字符,原本是英文分号。这样做是为了防止存储程序中的语句结尾与它产生混淆。因此必须先改成新的符号,然后以“结束存储程序”来收尾。完成存储程序的定义后,要重新设置为标准的终止字符。 也可以指定其他符号作为结束符。
【实例】创建名称为 的存储过程,代码如下:
设立一个存储过程,名为CountProc,通过输出参数param1返回一个整数 BEGIN 查询水果表中的记录总数,将结果存入param1变量中 END;
这个存储过程的主要功能是查询表中的数据行数,它的名字是 ,通过 COUNT(*) 统计完成后,将统计值存入指定的参数里。运行后的输出数据如下:
mysql> DELIMITER // mysql中可以定义一个存储过程,名为CountProc,该过程带有一个输出参数,参数类型为整数 -> BEGIN 查询水果表中的记录总数,将结果存入param1变量中。 -> END; -> // Query OK, 0 rows affected (0.00 sec) mysql> DELIMITER ;
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。


客服1