MySQL存储程序技术.ppt
MySQL存储程序技术;--什么是存储过程?
--为什么要使用存储过程?
--MySQL存储过程的创立
--MySQL存储过程的调用
--MySQL存储过程的查询
--MySQL存储过程的修改
--MySQL存储过程的删除
--MySQL存储过程的控制语句
--MySQL游标的使用
--MySQL存储程序之ErrorHandling
--MySQL存储函数
--MySQL触发器
;什么是存储过程?;为什么要使用存储过程?;格式:
MySQL存储过程创立的格式:CREATEPROCEDURE过程名([过程参数[,…]])[特性]。;参数:
MySQL存储过程的参数用在存储过程定义,共有三种参数类型IN,OUT,INOUT,形式如下:;IN参数例子:;OUT参数例子:;INOUT参数例子:;变量:
;注释:
;调用:
CALLsp_name([parameter[,…]]);查询:
SELECTnameFROMmysql.procWHEREdb=‘数据库名’;修改:
ALTERPROCEDUREsp_name[characteristic…];删除:
DROPPROCEDURE[IFEXISTS]sp_name;(1)变量作用域:
存储过程内部的变量在其作用域范围内享有更高的优先权,当执行到END时,内部变量消失,此时已经在作用域外,变量不再可见,但可以通过OUT参数或将其值指派给会话变量来保存其值。;(2)条件语句:
I.IF-THEN-ELSE语句:;(2)条件语句:
II.CASE语句;(3)循环语句:
I.WHILE…ENDWHILE;(3)循环语句:
II.REPEAT…UNTIL…ENDREPEAT
它在执行后检查结果,而WHILE那么是执行前进行检查。;(3)循环语句:
III.LOOP…ENDLOOP
LOOP循环不需要初始条件,和WHILE相似,同时和REPEAT一样不需要结束条件,LEAVE语句的意义是离开循环。;(3)循环语句:
IV.LABLES标号
标号可以用在BEGIN,REPEAT,WHILE或LOOP语句前,语句标号只能在合法的语句前面使用。可以跳出循环,使运行指令到达复合语句的最后一步。通过和LEAVE一起用。;(4)ITERATE迭代:
I.ITERATE
通过引用复合语句的标号来从新开始复合语句。;游标:
;游标举例:
;Hanlers:
DECLARE{CONTINUE|EXIT}HANDLERFOR
{SQLSTATEsqlstate_code|MySQLerrorcode|condition_name}
handler_actions
;常见的MySQLerrorcode和SQLSTATEcode:
;存储函数:
CREATEFUNCTIONsp_name([func_parameter[,...]])???RETURNStype
存储储函数和存储过程很想像,它们都是包含一个或多个SQL语句的被命名程序单元。和存储过程不同的地方有以下几点:;存储函数查看和删除:
;存储函数实例:;触发器:
CREATETRIGGERtrigger_nametrigger_timetrigger_event???ONtbl_nameFOREACHROWtrigger_stmt
触发器是一种在数据库表被INSERT,UPDATE或者DELETE等〔DML语句〕所作用时所激活的特殊的存储程序。只要表发生改变就会激活触发器的功能,直接依附于表,所以程序无法绕过触发器。;触发器查看和删除:
;触发器实例: