MySQL--存储过程和函数

版权声明: https://blog.csdn.net/qq_40722284/article/details/81939305

存储过程是一条或多条SQL语句地方集合,可以看作批文件,又不仅限于批处理。

创建存储过程

CREATE PROCEDURE  过程名(IN | OUT | INOUT 参数名 类型)

[这里指定存储过程特性]

[SQL代码,使用BEGIN...END代表开始和结束]

特性

创建存储函数

CREATE FUNCTION  函数名(IN | OUT | INOUT 参数名 类型)

扫描二维码关注公众号,回复: 2931785 查看本文章

RETURNS 类型

[这里指定存储过程特性]

 [SQL代码,使用BEGIN...END代表开始和结束]

RETURN  value (必须包含)

变量的使用

作用在子程序中,在BEGIN...END中声明使用

定义变量

DECLARE 变量名 类型 默认值

为变量赋值

SET 变量名=值;

定义条件

DECLARE 条件名 CONDITION FOR 条件类型

条件类型:SQLSTATE  值  sqlstate_value | mysql_error_code

ERROR  1142(42000) 1142--mysql_error_code;42000--sqlstate_value;

定义处理程序

DECLARE 处理类型 HANDLER FOR 条件值 程序语句段sp_statement

处理类型(错误处理方式)

条件值(表示错误类型)

  1. CONTINUE  --  遇到错误不处理继续执行;
  2. EXIT  --  遇到错误退出;
  3. UNDO  --  遇到错误撤回之前操作(MySQL暂时不支持);

光标的使用

声明处理程序之前被声明,变量和条件必须在声明光标和处理程序之前被声明

定义光标

DECLARE 光标名 CURSOR FOR select_statement(表示SELECT语句的内容,返回一个创建光标的结果集)

打开光标

OPEN 光标名;

关闭光标

CLOSE 光标名;

使用光标

FETCH 光标名 INTO 变量名列表(将SELECT查询出来的语句传入该变量,变量名需提前定义好)

流程控制语句使用

调用存储过程和函数

CALL  存储过程名(参数)

使用SELECT查看结果

SELECT 函数名

查看存储过程和函数

查看状态

LIKE表示匹配过程或函数的名称

查看定义

修改存储过程和函数

sp_name:存储过程和函数名称

特性:

删除存储过程和函数

要点:

存储过程和函数的区别

相同点:本质上都是存储程序

不同点:

函数只能通过return返回值,过程通过out参数返回值;

函数可以嵌入在SELECT中,过程作为单独一部分执行;

函数限制多,只能用表变量,不能用临时变量,过程限制少;

存储过程可以调用其他存储过程,但不可删除其他存储过程。

存储过程代码不可改变,只能删掉重新写。

存储过程中的参数不要与数据表中字段名相同。

存储过程参数若要使用中文,需要在定义存储过程的时候在后面加上character set gbk。

猜你喜欢

转载自blog.csdn.net/qq_40722284/article/details/81939305