mysql存储过程的学习

MySQL 语句一般都是针对一个表或几个表的单条 SQL 语句,但是在数据库的实际操作中,并非所有操作都那么简单,经常会有一个完整的操作需要多条 SQL 语句处理多个表才能完成,存储过程可以有效地完成这个数据库操作。
存储过程:一个完整的操作需要多条 SQL 语句处理多个表才能完成。

存储过程通常有如下优点:
1) 封装性
存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的 SQL 语句,并且数据库专业人员可以随时对存储过程进行修改,而不会影响到调用它的应用程序源代码。
2) 可增强 SQL 语句的功能和灵活性
存储过程可以用流程控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。
3) 可减少网络流量
由于存储过程是在服务器端运行的,且执行速度快,因此当客户计算机上调用该存储过程时,网络中传送的只是该调用语句,从而可降低网络负载。
4) 高性能
存储过程执行一次后,产生的二进制代码就驻留在缓冲区,在以后的调用中,只需要从缓冲区中执行二进制代码即可,从而提高了系统的效率和性能。
5) 提高数据库的安全性和数据的完整性
使用存储过程可以完成所有数据库操作,并且可以通过编程的方式控制数据库信息访问的权限

基本命令:

DELIMITER : 用于切换mysql语句结束标志。例如:DELIMITER ; 或者 DELIMITER $$

1.DELIMITER 和分号“;”之间一定要有一个空格
可以使用 SHOW PROCEDURE STATUS 命令查看数据库中存在哪些存储过程,若要查看某个存储过程的具体信息,则可以使用 SHOW CREATE PROCEDURE <存储过程名>。

2.#根据名称查看存储过程的具体信息
SHOW CREATE PROCEDURE ShowStu;

3.#查询当前数据库中的存储过程 事件
SHOW PROCEDURE STATUS;

4. #调用存储过程
CALL ShowStu;

5**. 创建一个不带参数的存储过程:**
DELIMITER $$
CREATE PROCEDURE ShowStu()
BEGIN
SELECT * FROM student;
END

6.#创建带参数的存储过程

DELIMITER //
CREATE PROCEDURE ShowFindName(IN r_name VARCHAR(30))
BEGIN
SELECT * FROM student WHERE stuname=r_name;
END //

调用并且执行该存储过程
CALL ShowFindName(‘黄晓明’);

修改存储过程的内容和名称

语法格式如下:

ALTER PROCEDURE <过程名> [ <特征> … ]

修改存 储过程的内容可以通过删除原存储过程,再以相同的命名创建新的存储过程。
修改存储过程的名称可以通过删除原存储过程,再以不同的命名创建新的存储过程。
MySQL删除存储过程(DROP PROCEDURE)
语法格式如下:

DROP { PROCEDURE | FUNCTION } [ IF EXISTS ] <过程名>

语法说明如下:
1) 过程名
指定要删除的存储过程的名称。
2) IF EXISTS
指定这个关键字,用于防止因删除不存在的存储过程而引发的错误。
注意:存储过程名称后面没有参数列表,也没有括号,在删除之前,必须确认该存储过程没有任何依赖关系,否则会导致其他与之关联的存储过程无法运行
例如:drop procedure ShowStu;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值