mysql课件第十四章存储过程和函数.ppt
《mysql课件第十四章存储过程和函数.ppt》由会员分享,可在线阅读,更多相关《mysql课件第十四章存储过程和函数.ppt(60页珍藏版)》请在三一办公上搜索。
1、MySql数据库,天津理工大学 华信软件学院 田春艳 2011年9月-2012年1月,存储过程和函数(1),存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。存储过程和函数可以避免开发人员重复的编写相同的SQL语句。而且,存储过程和函数是在MySQL服务器中存储和执行的,可以减少客户端和服务器端的数据传输。,存储过程和函数(2),将使用的一组SQL语句的组合在一起,并将这些SQL语句当作一个整体存储在MySQL服务器中。例如,银行经常需要计算用户的利息。不同类别的用户的利率是不一样的。这就可以将计算利率的SQL代码写成一个存储过程或
2、者存储函数。只要调用这个存储过程或者存储函数,就可以将不同类别用户的利息计算出来。,内容,创建存储过程和函数定义变量的定义赋值定义条件和处理程序游标的使用流程控制的使用修改存储过程和函数删除存储过程和函数,创建存储过程,MySQL中,创建存储过程的基本形式如下:CREATE procedure sp_name(过程参数1,过程参数2)begin 过程体 end,例如,mysqlDELIMITER/mysqlCREATEPROCEDUREproc1(OUTsint)BEGINSELECTCOUNT(*)INTOsFROM student;ENDmysqlDELIMITER;,注意事项,DELIM
3、ITER/和 DELIMITER;MySQL默认以“;”为一个命令的结束参数CREATE PROCEDURE(IN|OUT|INOUT 参数名数据类形.)IN输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值OUT输出参数:该值可在存储过程内部被改变,并可返回INOUT输入输出参数:调用时指定,并且可被改变和返回过程体的开始与结束使用BEGIN与END进行标识。,创建存储函数,MySQL中,创建存储函数的基本形式如下:CREATE function sp_name(函数的参数)RETURNS type characteristic.routine_
4、body,例如,Delimiter/Create function t_f(s int)returns char(20)bengin return(select sname from student where sno=s);end/delimiter;,存储过程和函数的区别,关键字 PROCEDURE、function参数上 存储过程可以的参数分为IN|OUT|INOUT 存储函数没有分类返回值上存储函数是有返回值的 而PROCEDURE是通过参数返回的,内容,创建存储过程和函数定义变量的定义赋值定义条件和处理程序游标的使用流程控制的使用修改存储过程和函数删除存储过程和函数,变量的使用,存储
5、过程和函数中可以定义和使用变量。用户可以使用DECLARE关键字来定义变量。然后可以为变量赋值。这些变量的作用范围是BEGINEND程序段中。本小节将讲解如何定义变量和为变量赋值。1定义变量2为变量赋值,定义变量,DECLARE var_name,.type DEFAULT value 如declare a,b,c int default 0其中,DECLARE关键字是用来声明变量的;var_name参数是变量的名称,这里可以同时定义多个变量;type参数用来指定变量的类型;DEFAULT value子句将变量默认值设置为value,没有使用DEFAULT子句时,默认值为NULL。,为变量赋值
6、(1),使用SET关键字来为变量赋值。基本语法如下:SET var_name=expr,var_name=expr.如:Set a=20,b=40,c=50一个SET语句可以同时为多个变量赋值,各个变量的赋值语句之间用逗号隔开。,为变量赋值(2),使用SELECTINTO语句为变量赋值。其基本语法如下:SELECT col_name,INTO var_name,FROM table_name WEHRE condition 其中,col_name参数表示查询的字段名称;var_name参数是变量的名称;table_name参数指表的名称;condition参数指查询条件。SELECT d_id
7、 INTO my_sql FROM employee WEHRE id=2;,使用set定义变量,Set a=3;会话变量 对当前客户端有效Set global 变量名全局变量 对所有客户端生效,内容,创建存储过程和函数定义变量的定义赋值定义条件和处理程序游标的使用流程控制的使用修改存储过程和函数删除存储过程和函数,定义条件和处理程序,定义条件和处理程序是事先定义程序执行过程中可能遇到的问题。并且可以在处理程序中定义解决这些问题的办法。这种方式可以提前预测可能出现的问题,并提出解决办法。这样可以增强程序处理问题的能力,避免程序异常停止。1定义条件2定义处理程序,定义条件,MySQL中可以使用D
8、ECLARE关键字来定义条件。其基本语法如下:DECLARE condition_name CONDITION FOR condition_value condition_value:SQLSTATE VALUE sqlstate_value|mysql_error_code,/方法一:使用sqlstate_value DECLARE can_not_find CONDITION FOR SQLSTATE 42S02;/方法二:使用mysql_error_code DECLARE can_not_find CONDITION FOR 1146;,定义处理程序,DECLARE handler_t
9、ype HANDLER for condition_value,.sp_statement handler_type:CONTINUE|EXIT|UNDO,condition_value参数指明错误类型,该参数有6个取值。sqlstate_value和mysql_error_code与条件定义中的是同一个意思。condition_name是DECLARE定义的条件名称SQLWARNING表示所有以01开头的sqlstate_value值。NOT FOUND表示所有以02开头的sqlstate_value值。SQLEXCEPTION表示所有没有被SQLWARNING或NOT FOUND捕获的sq
10、lstate_value值。,/方法一:捕获sqlstate_value DECLARE CONTINUE HANDLER FOR SQLSTATE 42S02SET info=CAN NOT FIND;/方法二:捕获mysql_error_code DECLARE CONTINUE HANDLER FOR 1146 SET info=CAN NOT FIND;/方法三:先定义条件,然后调用 DECLARE can_not_find CONDITION FOR 1146;DECLARE CONTINUE HANDLER FOR can_not_find SET info=CAN NOT FIN
11、D;,/方法四:使用SQLWARNING DECLARE EXIT HANDLER FOR SQLWARNING SET info=ERROR;/方法五:使用NOT FOUND DECLARE EXIT HANDLER FOR NOT FOUND SET info=CAN NOT FIND;/方法六:使用SQLEXCEPTION DECLARE EXIT HANDLER FOR SQLEXCEPTION SET info=ERROR;,内容,创建存储过程和函数定义变量的定义赋值定义条件和处理程序游标的使用流程控制的使用修改存储过程和函数删除存储过程和函数,游标的使用,查询语句可能查询出多条记录
12、,在存储过程和存储函数中使用游标来逐条读取查询结果集中的记录。游标的使用包括声明游标、打开游标、使用游标和关闭游标。游标必须声明在处理程序之前,并且声明在变量和条件之后。1声明游标2打开游标3使用游标4关闭游标,声明游标(1),MySQL中使用DECLARE关键字来声明游标。其语法的基本形式如下:DECLARE cursor_name CURSOR FOR select_statement;,声明游标(2),下面声明一个名为cur_employee的游标。代码如下:DECLARE cur_employee CURSOR FOR SELECT name,age FROM employee;上面的
13、示例中,游标的名称为cur_employee;SELECT语句部分是从employee表中查询出name和age字段的值。,打开游标,MySQL中使用OPEN关键字来打开游标。其语法的基本形式如下:OPEN cursor_name;其中,cursor_name参数表示游标的名称。例如:下面打开一个名为cur_employee的游标,代码如下:OPEN cur_employee;,使用游标(1),MySQL中使用FETCH关键字来使用游标。其语法的基本形式如下:FETCH cur_employee INTO var_name,var_name;其中,cursor_name参数表示游标的名称;va
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mysql 课件 第十四 存储 过程 函数
链接地址:https://www.31ppt.com/p-6512908.html