MySQL的存储过程与函数——学习笔记
存储过程和存储函数是在数据库中定义的一些被用户定义的SQL语句集合。
存储过程可以被程序、触发器或者另一个存储过程调用。
11.1存储过程与函数简介
11.1.1概念
一个存储过程是一个可编程的函数,可由SQL语句和一些特殊的控制结构组成。
【优点】
- l 增强SQL语言的功能和灵活性
- l 允许标准组件是编程,可被多次调用,而不需重新编写
- l 实现较快的执行速度
- l 减少网络流量
- l 作为安全机制
- l 用户定义的一系列SQL语句的集合
11.1.2 存储过程和函数的区别
存储过程 |
函数 |
实现功能强大复杂,包括修改表 |
针对性强,不能修改数据库 |
可返回多个参数,参数类型有IN、OUT、INOUT |
只能返回一个值或者表对象,参数类型只有IN,声明时描述返回类型,且必须包含一个return语句 |
可用非确定性函数 |
不允许用非确定性函数 |
独立执行 |
作为查询语句中的一部分来调用 |
11.2存储过程与函数操作
11.2.1创建和使用存储过程和函数
1.创建存储过程
create procedure sp_name(输出类型,参数名称,参数类型)
Call sp_name(输出类型,参数名称,参数类型)
2.创建存储函数
Create function sp_name()
Returns type
调用存储函数
Select sp_name()
3.Delimiter:设置指定的结束标志
11.2.2变量
1.声明
declare str1,str2 varchar(6);
2.Set 变量赋值
Set str1=’abc’,str2=’exper’
11.2.3游标
游标的使用包括游标的声明,打开,使用,关闭。
注意:游标在处理程序之前声明,在条件和变量之后声明
1.声明
Declare cursorname cursor for select_statement(select语句,返回一行或者多行数据)
2.打开
Open cursor_name
3.读取数据
Feach ^ into ^ = select into
4.关闭
Close cursor_name
11.2.4查看存储过程和函数
1.查看存储过程
show procedure status like ‘cursor_name’;
2.查看具体信息
Show create function numofstudent;
3.查看全部存储过程
Select * from information_schema.routines where……