MySQL数据库入门第8章数据库编程96课件.pptxVIP

MySQL数据库入门第8章数据库编程96课件.pptx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

MySQL数据库入门

第8章数据库编程

·MySQL语言结构

·存储函数

·综合案例—“图书管理系统”编程操作

·存储过程

·触发器

MySQL语言结构

存储过程

存储函数

知识架构

综合案例—“图书管理系统”编程操作

触发器

8.2存储过程

知识架构

8.2存储过程

存储过程优点

(1)存储过程在服务器端运行,执行速度快。

(2)存储过程执行一次后,其执行规划就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。

(3)确保数据库的安全。使用存储过程可以完成所有数据库操作,并可通过编程方式控制上述操作对数据库信息访问的权限。

8.2存储过程

创建存储过程

创建存储过程可以使用CREATEPROCEDURE语句

语法格式:

CREATEPROCEDURE存储过程名([参数[,…]])存储过程体

参数:存储过程的参数,格式如下:

[IN|OUT|INOUT]参数名类型

当有多个参数的时候中间用逗号隔开。存储过程可以有0个、1个或多个参数。

关键字分别是IN、OUT和INOUT分别为输入参数、输出参数和输入/输出参数,输入参数使数据可以传递给一个存储过程。当需要返回一个答案或结果的时候,存储过程使用输出参数。输入/输出参数既可以充当输入参数,也可以充当输出参数。

存储过程也可以不加参数,但是名称后面的括号是不可省略的。

参数的名字不要等于列的名字。

8.2存储过程

DELIMITER命令例

在MySQL中,服务器处理语句的时候是以分号为结束标志的。但是在创建存储过程的时候,存储过程体中可能包含多个SQL语句,每个SQL语句都是以分号为结尾的,这时服务器处理程序的时候遇到第一个分号就会认为程序结束,这肯定是不行的。所以这里使用DELIMITER命令将MySQL语句的结束标志修改为其他符号。

DELIMITER语法格式为:

DELIMITER$$

说明:$$是用户定义的结束符,通常这个符号可以是一些特殊的符号,如两个“#”,两个“¥”等。

【例】将MySQL结束符修改为两个斜杠“/”符号。

DELIMITER//

要想恢复使用分号“;”作为结束符,运行下面命令即可:

DELIMITER;

8.2存储过程

创建存储过程举例

【例】编写一个存储过程,实现的功能是删除一个指定用户姓名的用户信息。

DELIMITER$$

CREATEPROCEDUREdel_member(INxmCHAR(8))

BEGIN

DELETEFROMMembersWHERE姓名=xm;

END$$

DELIMITER;

在关键字BEGIN和END之间指定了存储过程体,因为在程序开始用DELIMITER语句转换了语句结束标志为“$$”,所以BEGIN和END被看成是一个整体,在END后用“$$”结束。当然,BEGIN-END复合语句还可以嵌套使用。

要想查看数据库中有哪些存储过程,可以使用SHOWPROCEDURE命令。

SHOWPROCEDURESTATUS

要查看某个存储过程的具体信息,可使用SHOWCREATEPROCEDUREsp_name命令,其中sp_name是存储过程的名称。

SHOWCREATEPROCEDUREDELETE_STUDENT

8.2存储过程

DECLARE语句

1.局部变量

在存储过程中可以声明局部变量,它们可以用来存储临时结果。要声明局部变量必须使用DECLARE语句。在声明局部变量的同时也可以对其赋一个初始值。

语法格式:

DECLARE变量[,…]类型[DEFAULT值]

说明:DEFAULT子句给变量指定一个默认值,如果不指定,默认为NULL。

【例】声明一个整型变量和两个字符变量。

DECLAREnumINT(4);

DECLAREstr1,str2VARCHAR(6);

说明:局部变量只能在BEGIN…END语句块中声明。

局部变量必须在存储过程的开头就声明,声明完后,可以在声明它的BEGIN…END语句块中使用该变量,其他语句块中不可以使用它。

8.2存储过程

SET语句

2.使用SET语句赋值

要给局部变量赋值可以使用SET语句。

语法格式为:

SETvar_name=expr

【例】在存储过程中给局部变量赋值。

SETnum=1,str1=hello;

8.2存储过程

SELECT...INTO语句

文档评论(0)

学海无涯苦做舟 + 关注
实名认证
文档贡献者

职业教育

1亿VIP精品文档

相关文档