《MySQL网络数据库项目化教程(新形态活页式)》 课件 6.2创建数据库存储过程_第1页
《MySQL网络数据库项目化教程(新形态活页式)》 课件 6.2创建数据库存储过程_第2页
《MySQL网络数据库项目化教程(新形态活页式)》 课件 6.2创建数据库存储过程_第3页
《MySQL网络数据库项目化教程(新形态活页式)》 课件 6.2创建数据库存储过程_第4页
《MySQL网络数据库项目化教程(新形态活页式)》 课件 6.2创建数据库存储过程_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

创建数据库存储过程CONTENTS目录情景导入01知识连接04任务目标03知识总结05分解任务02情景导入01PART

比如,计算商品利率时,不同商品的利率不一样,这就需要编写一个程序来存储计算利率的SQL代码,并将用户类别作为参数进行指定。这种程序被称为存储过程或存储函数。使用时只需调用该存储过程或存储函数,并根据指定的商品计算出不同商品的利率。

通过编写存储过程或存储函数,可以优化复杂查询的处理流程,让操作更加高效,减少出错的机会。同时,这种方式也具备更好的可复用性,能够在不同系统和场景中有效地应用。情景导入分解任务02PART分解任务

从认识存储过程着手,学习创建、执行、修改和删除存储过程的方法。任务目标03PART任务目标1.掌握存储过程的含义2.掌握存储过程的创建方法知识连接

04PART

存储过程是一组为了完成特定功能的SQL语句集合。用户通过存储过程可以将经常使用的SQL语句封装起来,这样可以避免重复编写相同的SQL语句。知识连接1.认识存储过程

在存储过程的创建中,经常会用到一个十分重要的MySQL命令,即DELIMITER命令。在MySQL中,服务器处理SQL语句默认是以分号作为语句结束标志。

然而,在创建存储过程时,存储过程体中可能包含有多条SQL语句,这此SQL语句如果仍以分号作为语句结束符,那么MySQL服务器在处理时会以遇到的第一条SQL语句结尾处的分号作为整个程序的结束符,不再去处理存储过程体中后面的SQL语句,这样显然不行。知识连接2.修改结束命令

为解决这个问题,通常可使DELIMITER命令,将MySQL语句的结束标志临时修改为其他符号,从而使得MySQL服务器可以完整地处理存储过程体中所有的SQL语句。知识连接DELIMITER命令的语法格式: DELIMITER

$$

$$是用户定义的结束符。通常这个符号可以是一些特殊的符号,如两个“#”或两人“¥”等。当使用DELIMITER命令时,应该避免使用反斜杠“\”字符,因为它是MySQL的转义字符。举例【例6.10】将MySQL结束符修改为两个感叹号“!!”输入SQL语句:

DELIMITER!!成功执行后,任何命令、语句或程序的结束标志就换为两个感叹号“!!”如要查看订单表的信息,SQL语句应如下:

select*from订单表!!若要换回默认的分号“:”作为结束标志,只需要在MySQL命令行客户端输入如下SQL语句即可:

DELIMITER:存储过程名存储过程的名称默认在当前数据库中创建。需要在特定数据库中创建存储过程时,要在名称前面加上数据库的名称。格式为:数据库名.存储过程名。

这个名称应当尽量避免与MySQL的内置函数名称相同,

否则会发生错误。知识连接3.创建存储过程创建存储过程的语法格式如下:CREATEPROCEDURE存储过程名([参数[,...])存储过程体参数:存储过程的参数,格式如下:[IN|OUT|INOUT]参数名类型当有多个参数的时候,中间用逗号隔开。存储过程可以有0个、1个或多个参数。支持3种类型的参数:输入参数、输出参数和输入/输出参数关键字分别是IN、OUT和INOUT。

参数的名字不要等于列的名字,否则虽然不会返回出错消息,但是存储

程中的SQL语句会将参数名看作列名,从而可能产生不可预知的结果。知识连接3.创建存储过程创建存储过程的语法格式如下:CREATEPROCEDURE存储过程名([参数[,...])存储过程体存储过程体:这是存储过程的主体部分,里面包含了在过程调用的时候必须执行的语句,这个部分总是以BEGIN开始,以END结束。但是,当存储过程体中只有一个SQL语句时,可以省略BEGIN-END标识。知识连接3.创建存储过程创建存储过程的语法格式如下:CREATEPROCEDURE存储过程名([参数[,...])存储过程体当调用该存储过程时,MySQL根据提供的参数“手工刺绣”删除商品分类表中对应的数据。知识连接【例6.11】

编写一个存储过程,实现的功能是删除一个指定的商品类别。DELIMITER$$CREATEPROCEDUREDEL_商品分类表()

BEGIN

DELETEFROM商品分类表where分类名称='手工刺绣':

END$$DELIMITER:知识连接4.

查看存储过程使用SHOWPROCEDURESTATUS命令查看数据库中的存储过程。SHOWPROCEDURESTATUS:例如要看例6.11创建的过程DEL_商品分类表的语句,如下所示。SHOWCREATEPROCEDUREDEL_商品分类表:参数:调用该存储过程使用的参数,这条语句中的参数个数必须总是等于存储过程的参数个数。知识连接5.调用存储过程创建存储过程完成后,可以在程序、触发器或存储过程中被调用,调用时都必须使用CALL命令,语法格式如下:CALL存储过程名([参数[,...]])存储过程名:存储过程的名称,如果要调用某个特定数据库的存储过程,则需要在前面加上该数据库的名称。举例删除“特色美食”的商品类别,需调用例6.11的存储过程,但需加入参数DELIMITER$$CREATEPROCEDUREDEL_商品分类表(IN分类名VARCHAR(50))

BEGIN

DELETEFROM商品分类表where分类名称=分类名;

END$$

DELIMITER;调用存储过程:CALLDEL_商品分类表(‘特色美食’):知识连接6.删除存储过程需要删除存储过程时使用DROPPROCEDURE语句。在删除之前,必须确认该存储过程没有任何依赖关系,否则可能会导致其他与之关联的存储过程无法运行。语法格式:DROPPROCEDURE[IFEXISTS]存储过程名存储过程名:要删除的存储过程名称。IFEXISTS:是可选项,如果程序或函数不存在,则该字句可以防止发生错误。例如,要删除存储过程DEL_商品分类表,使用如下语句DROPPROCEDUREIF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论