网站大量收购闲置独家精品文档,联系QQ:2885784924

《数据库技术及应用(MySQL)》课件 第7章 存储过程和触发器.pptx

《数据库技术及应用(MySQL)》课件 第7章 存储过程和触发器.pptx

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档