mysql存储过程与存储函数


存储过程和存储函数是mysql支持的过程式数据库对象。可以提高数据库的处理速度,提高数据库编程的灵活性。

一、存储过程

1、概述

一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程有参数)来调用执行它。

封装性。被创建后,可以被多次调用,即使对存储过程进行修改,不会直接影响到调用它的应用程序;
增加sql语句的功能与灵活性。可以用流控制语句编写,完成复杂的判断和较复杂的运算;
减少网络流量。在服务器端运行,执行速度快;
高性能。执行过一次后,产生的二进制代码就可以驻留在缓冲区;
提高数据库安全性和数据完整性。存储过程可以完成所有数据库操作,并通过编程方式控制数据库信息访问的权限

2、存储过程

可以使用create procedure语句创建存储过程
语法格式:

create procedure <过程名> ([过程参数[,...]]) <过程体>
[过程参数[,...]]格式
[in|out|input] <参数名> <类型>

参数说明:

<过程名> 存储过程的名称
[过程参数[,…]]存储过程的参数列表
[过程体]存储过程的主体部分,以Begin开始,End结束
在mysql中,服务器处理sql默认是以分号作为语句结束标志,为解决这个问题,需要使用delimiter命令将结束命令修改城其他字符。语法格式:delimiter ??

实例:
在数据库mytest中,创建一个存储过程,存储的功能是依据学生的id,修改studentes的姓名。

use mytest;
delimiter ??
create procedure update_name(in cid int,in cname char(50))
Begin
 update students set student_name=cname where student_id=cid;
End ??

在创建存储函数时,用户必须具有create routine权限;
使用如下命令,查询有哪些存储过程:
show procedure status;
查询某个具体存储过程:
show create procedure <存储过程名>

3、存储过程体

可以使用各种sql语句与过程式语句的结合。对数据库应用中的复杂业务逻辑和处理规则进行封装。

3.1 局部变量

在存储过程体中可以声明局部变量,用来存放产生的临时结果。
语法格式:

declare
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

twdnote

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值