「这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战」
xdm,日拱一卒,我又来了了,今天依然是数据库,不过是存储过程篇
基本概念
存储过程是一组为了完成某项特定功能的sql语句集,其实质上就是一段存储在数据库中的代码,它可以由声明式的sql语句(如CREATE、UPDATE和SELECT等语句)和过程sql语句(如IF...THEN...ELSE控制结构语句)组成。
使用存储过程的好处
- 可增强SQL语言的功能和灵活性
- 良好的封装性
- 高性能
- 可减少网络流量
- 可作为一种安全机制来确保数据库的安全性和数据的完整性
创建存储过程
CREATE PROCEDURE sp_name([proc_parameter[,...]])
routine_body
BEGIN
# 增删改语句
END
复制代码
存储过程体
局部变量
在存储过程体中可以声明局部变量,用来存储存储过程体中的临时结果
SET语句
使用set语句为局部变量赋值
SELECT...INTO语句
使用select...into把选定的值直接存储到局部变量中
流程控制语句
- 条件判断语句
- 循环语句
游标
游标是一个被select语句检索 出来的结果集
-
声明游标
DECLARE cursor_name CURSOR FOR select_statement 复制代码
-
打开游标
OPEN cursor_name 复制代码 -
读取数据
FETCH cursor_name INTO var_name[,var_name]... 复制代码 -
关闭游标
CLOSE cursor_name 复制代码
使用游标的过程中,需要注意以下几点:
- 游标只能用于存储过程或存储函数中,不能单独在查询操作中使用
- 在存储过程或存储函数中可以定义多个游标,但是在一个BEGIN...END语句块中每一个游标的名字必须是唯一的
- 游标不是一条select语句, 而是被select语句检索出来的结果集
调用存储过程
创建好存储过程后,可以使用CALL语句在程序或者其他存储过程中调用它。
CALL sp_name([parameter[,...]])
CALL sp_name[()]
复制代码
删除存储过程
DROP PROCEDURE[IF EXISTS]sp_name
复制代码
我问佛:为何不给所有女子羞花闭月的容颜?
佛曰:那只是昙花的一现,用来蒙蔽世俗的眼, 没有什么美可以抵过一颗纯净仁爱的心. 我把它赐给每一个女子, 可有人让它蒙上了灰. 继续前进!




近期评论