- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 山东省青岛市2024-2025学年七年级上学期11月期中英语试题.docx VIP
- 灼热丝试验规范.doc VIP
- 不动产登记实务培训教程课件.pptx VIP
- 高中语文统编版必修 下册(2019)_2022届高考语文二轮复习“科幻小说与魔幻现实主义小说”专练 .doc VIP
- 小学语文大阅读《奇妙的数王国》 指导课件.pptx
- 灼热丝试验及标准.docx VIP
- 新能源零基础知识培训课件.pptx VIP
- 2025年上海市时事政治考试试卷带解析(考试直接用).docx VIP
- 2025年上海市时事政治考试试卷带解析含答案(考试直接用).docx VIP
- 高等有机化学 周环反应.ppt VIP
文档评论(0)