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……

 

原文地址:https://www.cnblogs.com/liyanyinng/p/14051874.html