存储过程和函数

来源:互联网 发布:华彬集团网络商学院 编辑:程序博客网 时间:2024/06/06 00:59

定义:在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。

创建存储过程:CREATE PROCEDURE sp_name([proc_parameter[,…]])
[characteristic…] routine_body
其中,sp_name参数是存储过程的名称;proc_parameter表示存储过程的参数列表;characteristic参数指定存储过程的特性;routine_body参数是SQL代码的内容,可以用BEGIN…END来标志SQL代码的开始和结束。
proc_parameter中每个参数由3部分组成。分别是输入输出类型、参数名称和参数类型。形式如下:
[IN | OUT | INOUT]param_name type,其中IN表示输入参数;OUT表示输出参数;INOUT表示既可以是输入,也可以是输出;param_name参数是存储过程的名称;type参数指定存储过程的参数类型。

创建存储函数:CREATE FUNCTION sp_name(func_parameter[,…])
RETURNS type
[characteristic…] routine_body
其中,sp_name参数是存储函数的名称,func_parameter表示存储函数的参数列表;RETURNS type指定返回值的类型;characteristic参数指定存储函数的特性,该参数的取值与存储过程中的取值是一样的;routine_body参数是SQL代码的内容,可以用BEGIN…END来标志SQL代码的开始和结束。
func_parameter可以由多个参数组成,每个参数由参数名称和参数类型组成。

定义变量:DECLARE var_name[,…] type [DEFAULT value]

为变量赋值:SET var_name=expr[,var_name=expr]…
使用SELECT…INTO语句给变量赋值:SELECT col_name[,..] INTO var_name[,…]
FROM table_name WHERE condition

定义条件:DECLARE condition_name CONDITION FOR condition_value
condition_value;
SQLSTATE [VALUE] sqlstate_value | mysql_error_code

定义处理程序:
DECLARE handler_type HANDLER FOR condition_value[,…] sp_statement
handler_type:
CONTINUE | EXIT | UNDO
condition_value:
SQLSTATE[VALUE] sqlstate_value | condition_name | SQLWARING
| NOT FOUND | SQLEXCEPTION | mysql_error_code

声明光标:DECLARE cursor_name CURSOR FOR select_statement;
打开光标:OPEN cursor_name;
使用光标:FETCH cur_name INTO var_name[,var_name,…];
关闭光标:CLOSE cursor_name;

0 0
原创粉丝点击