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

MySQL开发和 与实践第9章存储过程和 与存储函数.ppt

MySQL开发和 与实践第9章存储过程和 与存储函数.ppt

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

;;9.1 创建存储过程和存储函数;9.1.1 创建存储过程; 一个存储过程包括名字,参数列表,还可以包括很多SQL语句集。下面创建一个存储过程,其代码如下: delimiter // create procedure proc_name (in parameter integer) begin declare variable varchar(20); if parameter=1 then set variable=MySQL; else set variable=’PHP’; end if; insert into tb (name) values (variable); end; MySQL中存储过程的建立以关键字create procedure开始,后面仅跟存储过程的名称和参数。MySQL的存储过程名称不区分大小写,例如PROCE1()和proce1()代表同一存储过程名。存储过程名或存储函数名不能与MySQL数据库中的内建函数重名。;创建存储函数与创建存储过程大体相同。其创建存储函数的基本形式如下: CREATE FUNCTION sp_name ([func_parameter[,...]]) RETURNS type ??? [characteristic ...] routine_body 创建存储函数的参数说明如表9-2所示。 表9-2 创建存储函数的参数说明 func_parameter可以由多个参数组成,其中每个参数均由参数名称和参数类型组成,其结构如下: param_name type param_name参数是存储函数的函数名称;type参数用于指定存储函数的参数类型。该类型可以是MySQL 数据库所支持的类型。;; MySQL存储过程中的参数主要有局部参数和会话参数两种,这两种参数又可以被称为局部变量和会话变量。局部变量只在定义该局部变量的begin…end范围内有效,会话变量在整个存储过程范围内均有效。 1.局部变量 局部变量以关键字declare声明,后跟变量名和变量类型,例如: declare a int 当然在声名局部变量时也可以用关键字default为变量指定默认值,例如: declare a int default 10 下述代码为读者展示如何在MySQL存储过程中定义局部变量以及其使用方法。在该例中,分别在内层和外层 begin…end块中都定义同名的变量x,按照语句从上到下执行的顺序,如果变量x在整个程序中都有效,则最终结果应该都为inner,但真正的输出结果却不同,这说明在内部begin…end块中定义的变量只在该块内有效。;【例9-3】 该例子说明局部变量只在某个begin…end块内有效。代码如下: delimiter // create procedure p1() begin declare x char(10) default outer ; begin declare x char(10) default inner ; select x; end; select x; end; // 上述代码的运行结果如图9-3所示。 图9-3 定义局部变量的运行结果 ;应用MySQL调用该存储过程的运行结果如图9-4所示。 图9-4 调用存储过程pl()的运行结果 ;2.全局变量 MySQL中的会话变量不必声明即可使用,会话变量在整个过程中有效,会话变量名以字符“@”作为起始字符。下述代码为会话变量的使用方法。 【例9-4】 在该例中,分别在内部和外部begin…end块中都定义了同名的会话变量@t,并且最终输出结果相同,从而说明会话变量的作用范围为整个程序。设置全局变量的代码如下: delimiter // create procedure p2() begin set @t=1; begin set @t=2; select @t; end; select @t; end; //;上述代码的运行结果如图9-5所示。 图9-5 设置全局变量 ;应用MySQL调用该存储过程的运行结果如图9-6所示。 图9-6 调用存储过程p2()运行结果 ;3.为变量赋值 MySQL中可以使用DECLARE关键字来定义变量。定义变量的基本语法如下: DECLARE var_name[,…] type [DEFAULT value] DECLARE是用来声明变量的;var_name参数是设置变量的名称。如果用户需要,也可以同时定义多个变量;type参数用来指定变量的类型;DEFAULT value的作用是指定变量的默认值,不对该参数进行设置时,其默认值为NULL。 MySQL中可以使用SET关键字为变量赋值。SET语句的基本语法如

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档