为什么需要存储过程.docVIP

  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文档。上传文档
查看更多
为什么需要存储过程: 存储过程的好处: 基础知识: 实例讲解: 基础知识: 定义:存储过程是某一段代码,由存储在一个数据库的目录中的,声明式的和过程式的SQL语句组成,可以从一个程序、触发器或者另一个存储过程调用从而激活它。 特征: 1,一段代码:声明式的SQL语句:create,update,select等 过程式的SQL语句:IF-THEN-ELSE WHILE-DO 2,调用方式多样,提供了输入和输出参数。 组成部分: 参数列表:A,0个或多个参数 B,三种类型参数:输入参数IN 输出参数OUT 输入/输出参数INOUT 注意:参数名不等于列名 存储过程体:A,begin开始 end结束,分号结束 B,可以指定所有的语句类型(Dml Dcl Dll) 过程式的也允许 C,可以套嵌begin end 并标记 名字:唯一的 局部变量:1,在一个存储过程内部,可以声明局部变量,用来存储中间结果。通过申明,就确定了变量的数据类型,并且也可以指定初始值。支持的数据类型是本数据库特定的数据类型:declare num1 varchar(20);declare number1,number2 INTEGR; Begin Declare number2 Integer default (select count(*) from players) Set number1=number2; End 2,变量申明位置:不同的begin-end块 作用域不同 B1:begin Declare v1 INTEGER; B2:BEGIN Declare v2 INTEGER; SET V2=1; SET V1=V2; END b2; B3:BEGIN Set v1=v2; END B3; Set v2=100; end Create procedure Delete_matches(in p_playerno INTEGER) SET语句:可以把一个值赋给局部变量。 Set var1=1; Set var1=1,var2=var1; 流程控制语句:在过程体中可以用过程式语句 IF:IF c THEN s [ELSEIF c THEN s] [ELSE s] END IF 例子:Begin IF P1P2 THEN SET P3=1; ELSEIF P1=P2 THEN SET P3=2; ELSE SET P3=3; END IF; End CASE语句:可以用来申明复杂的IF-THEN-ELSE结构 Case when c then s [when c then s] [else s] End case; 例子:case when p1p2 then set p3=1; When p1=p2 then set p3=2; Else set p3=3; End case; 循环语句:WHILE REPEAT LOOP LEAVE ITERATE WHILE:首先执行一个检查,再执行 REPEAT:先执行,再检查 LOOP:不使用条件,使用leave语句来结束循环 LEAVE:较早的结束一个循环 ITERATE:开始一个循环 例子: 计算两个日期之间的年数、月数、天数 Create procedure Age(IN STAT_DATE DATE,IN END_DATE DATE,OUT YEARS INTEGER,OUT MONTHS INTEGER,OUT DAYS INTEGER) BEGIN DECLARE NEXT_DATE,PREVIOUS_DATE DATE; SET YEARS=0; SET PREVIOUS_DATE=START_DATE; SET NEXT_DATE=START_DATE+INTERVAL 1 YEAR; WHILE NEXT_DATEEND_DATE DO SET YEARS = YEARS+1; SET PREVIOUS_DATE=NEXT_DATE; SET NEXT_DATE=NEXT_DATE+INTERVAL 1 YEAR; END SET MONTHS=0; SET NEXT_DATE=PREVIOUS_DATE+INTERVAL 1 MONTH; WHILE NEXT_DATEEND_DATE DO SET MONTHS=MONTHS+1; SET PREVIOUS_DATE=NEXT_DATE; SET NEXT_DATE

文档评论(0)

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

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档