MySQL数据库第八章 数据库编程.pptVIP

  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文档。上传文档
查看更多
DECLARE语句 1. 局部变量 在存储过程中可以声明局部变量,它们可以用来存储临时结果。要声明局部变量必须使用DECLARE语句。在声明局部变量的同时也可以对其赋一个初始值。 语法格式: DECLARE var_name[,...] type [DEFAULT value] 说明:var_name为变量名;type为变量类型;DEFAULT子句给变量指定一个默认值,如果不指定默认为NULL的话。 【例】 声明一个整型变量和两个字符变量。 DECLARE num INT(4); DECLARE str1, str2 VARCHAR(6); 说明:局部变量只能在BEGIN…END语句块中声明。 局部变量必须在存储过程的开头就声明,声明完后,可以在声明它的BEGIN…END语句块中使用该变量,其他语句块中不可以使用它。 SET语句 2. 使用SET语句赋值 要给局部变量赋值可以使用SET语句。 语法格式为: SET var_name = expr 【例】 在存储过程中给局部变量赋值。 SET num=1, str1= hello; SELECT...INTO语句 3. SELECT...INTO语句 使用这个SELECT…INTO语法可以把选定的列值直接存储到变量中。因此,返回的结果只能有一行。 语法格式为: SELECT col_name[,...] INTO var_name[,...] table_expr 【例8.20】 在存储过程体中将Book表中的书名为“计算机基础”的作者姓名和出版社的值分别赋给变量name和publish。 SELECT作者,出版社 INTO name, publish FROM Book WHERE 书名= 计算机基础; 调用存储过程 存储过程创建完后,可以在程序、触发器或者存储过程中被调用,调用时都必须使用到CALL语句, 其语法格式: CALL sp_name([parameter[,...]]) 说明:sp_name为存储过程的名称,如果要调用某个特定数据库的存储过程,则需要在前面加上该数据库的名称。parameter为调用该存储过程使用的参数,这条语句中的参数个数必须总是等于存储过程的参数个数。 如调用【例8.8】的存储过程,删除“张三”的的用户信息。 CALL del_member(张三); 调用存储过程 【例8.10】 创建存储过程实现查询Members表中会员人数的功能,并执行它。 首先创建查询Members表中会员人数的存储过程: CREATE PROCEDURE query_members() SELECT COUNT(*) FROM Members; 这是一个不带参数的非常简单的存储过程,通常SELECT语句不会被直接用在存储过程中。 调用该存储过程: CALL query_members(); 说明:通常SELECT语句不会被直接用在存储过程中。 删除存储过程 存储过程创建后需要删除时使用DROP PROCEDURE语句。在此之前,必须确认该存储过程没有任何依赖关系,否则会导致其他与之关联的存储过程无法运行。 语法格式为: DROP PROCEDURE [IF EXISTS] sp_name 说明:sp_name是要删除的存储过程的名称。IF EXISTS子句是MySQL的扩展,如果程序或函数不存在,它防止发生错误。 【例】 删除存储过程DO_QUERY()。 DROP PROCEDURE IF EXISTS DO_QUERY(); 存储过程创建完后,可以在程序、触发器或者存储过程中被调用,但是都必须使用到CALL语句。 语法格式: CALL sp_name([parameter[,...]]) parameter为调用该存储过程使用的参数,这条语句中的参数个数必须总是等于存储过程的参数个数。 如果是输出变量,前面加@ 调用该存储过程: CALL COMPAR(3, 6, @K); SELECT @K; 说明:3和6相当于输入参数K1和K2,用户变量K相当于输出参数K3。可以看到,由于36,输出参数K的值就为“小于”。 调用存储过程举例 【例8.12】 创建一个Bookstore数据库的存储过程,根据用户姓名和书名查询订单,如果订购册数小于5本不打折,订购册数在5-10本之间,订购单价打九折,订购册数大于10本,订购单价打八折。 调用存储过程举例 DELIMITER $$ CREATE PROCEDURE dj_update(IN c_name CHAR(8), IN b

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档