MySQL数据库管理与应用任务式教程(微课版)单元10 存储过程与触发器.pptx

MySQL数据库管理与应用任务式教程(微课版)单元10 存储过程与触发器.pptx

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

;;存储过程是一种数据库对象,是存储在服务器上的一组预定义的SQL语句集合。

使用存储过程的目的是将常用或复杂的工作预先用SQL语句写好并用一个指定名称存储起来,这个过程经编译和优化后存储在数据库服务器中,因此称为存储过程。当以后需要数据库提供与已定义好的存储过程的功能相同的服务时,只需调用存储过程即可。

存储过程可以用来完成转换数据、迁移数据、制作报表等数据库管理中的复杂操作,以减少数据库管理员的工作量。由于存储过程是在MySQL服务器中存储和执行的,因此可以避免重复编写相同的代码,减少客户端和服务器端的数据传输,执行速度快,提高系统性能。存储过程中通过流程控制语句可以完成较复杂的判断和运算,实现更强的功能。此外,存储过程也可以增强数据库使用的安全性和数据完整性。

存储过程具有与函数不同的特点,两者区别如下。

(1)语法定义的关键字不同,存储过程使用PROCEDURE,而函数使用fUNCTION。

(2)存储过程在创建时没有设置返回值,而函数定义时必须设置返回值。

(3)存储过程没有返回值类型,且不能将结果直接赋给变量;而函数定义时要设置返回值类型,且在调用时必须将返回值赋给变量。

(4)存储过程必须通过CALL调用,不能用SELECT语句调用;而函数可以直接使用SELECT语句调用。;10.1.1创建存储过程

1.创建存储过程

创建存储过程与创建自定义函数大体相同,其语法格式如下。

CREATEPROCEDURE存储过程名([[IN|OUT|INOUT]参数名数据类型])

存储过程体

说明:

(1)PROCEDURE:存储过程标识。

(2)IN|OUT|INOUT:在为存储过程设置参数时,在参数名前可指定参数的来源及用途。

IN为默认值,表示输入参数,即参数是在调用存储过程时传入存储过程里使用,传入的数据可以是直接数据,也可以是保存的数据变量;

OUT表示输出参数,初始值为NULL,它的作用是将存储过程中的值保存到OUT指定的参数中,返回给调用者;

INOUT表示输入输出参数,INOUT参数跟OUT类似,都可以从存储过程内部传值给调用者,不同的是调用者还可以通过INOUT参数传递值给存储过程。

(3)过程体:存储过程的主体部分,包含在存储过程调用的时候必须执行的SQL语句。这个部分以关键字BEGIN开始,以关键字END结束。若存储过程体中只有一条SQL语句,则可以省略BEGIN和END关键字。;【例题10.1】在cjgl数据库中创建一个名称为proc_rjxs的存储过程,其功能是显示学生xs表中软件技术专业的学生的信息。

执行如下语句。

USEcjgl;

CREATEPROCEDUREproc_rjxs()

SELECT*FROMxsWHERE专业名=软件技术;;【例题10.3】在cjgl数据库中创建一个带输入输出参数的存储过程proc_xmxh,其功能是根据给定的学生姓名返回相应学生的学号。

执行如下语句。

DELIMITER//

CREATEPROCEDUREproc_xmxh(INxmCHAR(8),OUTxhCHAR(6))

BEGIN

SELECT学号INTOxhFROMxsWHERE姓名=xm;

END//

DELIMITER;;2.调用存储过程

在MySQL中使用CALL语句来调用存储过程,其语法格式如下。

CALL存储过程名([参数[...]]);

【例题10.4】调用存储过程proc_rjxs,显示学生表xs中软件技术专业的学生的信息。调用存储过程p_xsxx,显示学号为001101的学生的信息。调用存储过程proc_xmxh,查询学生“王金华”的学号。

分别执行如下语句。

CALLproc_rjxs();

CALLproc_xsxx(001101);

CALLproc_xmxh(王金华,@xh);

SELECT@xh;;10.1.2管理存储过程

1.查看存储过程

(1)查看存储过程的定义。

在MySQL中可以通过SHOWCREATE语句查看存储过程的定义,其语法格式如下。

SHOWCREATEPROCEDURE存储过程名;

如SHOWCREATEPROCEDUREproc_rjxs;。

(2)查看存储过程的状态信息。

在MySQL中可以通过SHOWSTATUS语句查看存储过程的状态,其语法格式如下。

SHOWPROCEDURESTATUSLIKE存储过程名;

如SHOWPROCEDURESTATUSLIKEproc

您可能关注的文档

文档评论(0)

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

中学高级教师 从事一线教育教研15年多

1亿VIP精品文档

相关文档