- 1、本文档共45页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
;
存储过程和触发器都是嵌入在MySQL一段程序。存储过程可以将经常使用的SQL语句封装起来,进行多次使用。游标可以实现数据检索。触发器是由插入、修改和删除命令来触发某个操作,当执行这些命令时,就会激发触发器执行相应的操作。事件是规定计划任务执行的时间和频率。;学习要点
了解存储过程概念
掌握存储过程使用方法
掌握游标的使用方法。
了解触发器概念
掌握触发器的使用方法
了解事件概念
熟悉事件的使用方法
;学习内容
7.1存储过程
7.2游标
7.3触发器
7.4事件;存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能提升效率。;7.1.1创建存储过程
创建存储过程与创建函数相同,需要先临时修改语句结束符号,再使用CREATE语句创建,其基本语法格式如下。
CREATEPROCEDUREsp_name([IN|OUT|INOUT)param_nameTYPE])
[characteristic…]routinebody;
语法说明:
·sp_name:创建存储过程的名称。
·IN|OUT|INOUTparam_nametype:IN表示输入参数,OUT表示输出参数,INOUT表示既可以输入也可以输出;param_name表示参数名称;TYPE表示参数的类型,该类型可以是MySQL数据库中的任意类型。
·routinebody:是SQL代码的内容,可以用BEQIN···END来表示SQL代码的开始和结束。;7.1.1创建存储过程
【例7-1】创建名称为proSumCno存储过程。统计course表中课程的门数。
DELIMITER$$
CREATEPROCEDUREproSumCno(OUTsumcINT)
BEGIN
SELECTCOUNT(*)INTOsumcFROMcourse;
END
$$
DELIMITER;
;7.1.2调用存储过程
创建完存储过程后,需要调用存储过程才能实现其功能。SQL采用CALL语句用来调用一个已创建存储过程,基本语法格式如下。
CALLsp_name([parameter[,…]]}
语法说明:
·sp_name:已创建存储过程的名称。
·parameter[,…]:实数必须与该过程定义时形参相对应。当形参是IN时,则实参可以是变量或数据,当形参被指定是INOUT或OUT时,则实参必须是变量。
;7.1.2调用存储过程
???例7-2】创建名称为procStu存储过程,根据学号,查询某个学生的信息。
DELIMITER$$
CREATEPROCEDUREprocStu(INidVARCHAR(20))
BEGIN
SELECT*FROMstudentWHERESno=id;
END
$$
DELIMITER;
CALLprocStu(;
;7.1.3查看存储过程
1.查看存储过程的状态
使用SHOWPROCEDURESTATUS语句查看存储过程的状态,语法格式如下。
SHOWPROCEDURESTATUS[LIKEpattern];
【例7-3】查看procStu存储过程的状态。
SHOWPROCEDURESTATUSLIKEpro%\G;
;7.1.3查看存储过程
2.查看存储过程的信息
使用SHOWCREATEPROCEDURE查看存储过程的信息,语法格式如下。
SHOWCREATEPROCEDUREsp_name;
语法说明:
·sp_name:存储过程名称。
【例7-4】查看procStu存储过程信息。
SHOWCREATEPROCEDUREprocStu\G;
;7.1.3查看存储过程
3.通过表查看存储过程
查询information_schema表可以查询相关存储过程的信息,语法格式如下。
SELECT*
FROMinformation_schema.ROUTINES
WHEREroutine_name=sp_name’;
语法说明:
·ROUNTINE_NAME:ROUTINES表的字段名,该字段存储所属有存储过程的名称。
【例7-5】通过表查看procStu存储过程信息。
SELECT*
FROMinformation_schema.routines
WHEREroutine
您可能关注的文档
- 《数据库技术及应用(MySQL)》课件 第2章 MySQL 概述.pptx
- 《数据库技术及应用(MySQL)》课件 第4章 表的创建与管理.pptx
- 《数据库技术及应用(MySQL)》课件 第5章 数据查询与视图管理.pptx
- 《数据库技术及应用(MySQL)》课件 第6章 MySQL编程基础.pptx
- 《数据库技术及应用(MySQL)》课件 第8章 数据库安全管理.pptx
- 《数据库技术及应用(MySQL)》课件 第9章 事务与锁.pptx
- 《数据库技术及应用(MySQL)》课件 第10章 综合实例.pptx
- 《数据库技术及应用(MySQL)》实验报告模版 实验1 概念模型设计(绘制E-R图).docx
- 《数据库技术及应用(MySQL)》实验报告模版 实验2 逻辑模型设计与完整性.docx
- 《数据库技术及应用(MySQL)》实验报告模版 实验3 数据库的创建与管理.docx
文档评论(0)