欢迎来到天天文库
浏览记录
ID:22371665
大小:100.00 KB
页数:17页
时间:2018-10-28
《mysql5.0新特性教程 存储过程-第三讲--》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、MySQL5.0新特性教程存储过程:第三讲>> TheNeents新SQL语句 Variables变量 在复合语句中声明变量的指令是DECLARE。 (1)Exampleents 两个DECLARE语句的例子ttysql>CALLp10()//+--------+
2、s1*a
3、+--------+
4、25
5、
6、25
7、+--------+2roysql>CALLp11()//+-------+
8、x1
9、+-------+
10、inner
11、+-------++-------+
12、x1
13、+-------+
14、outer
15、+-------+ 我们看到的结果时第
16、一个SELECT语句检索到最内层的变量,第二个检索到第二层的变量 ConditionsandIF-THEN-ELSE条件式和IF-THEN-ELSE 1. 现在我们可以写一些包含条件式的例子:CREATEPROCEDUREp12(INparameter1INT)BEGINDECLAREvariable1INT;SETvariable1=parameter1+1;IFvariable1=0THENINSERTINTOtVALUES(17);ENDIF;IFparameter1=0THENUPDATEtSETs1=s1+1;ELSEUPDATEtSETs1=
17、s1+2;ENDIF;END;// 这里是一个包含IF语句的过程。里面有两个IF语句,一个是IF语句ENDIF,另一个是IF语句ELSE语句ENDIF。我们可以在这里使用复杂的过程,但我会尽量使其简单让你能更容易弄清楚。 2.>>>这篇文章来自..,。> CALLp12(0)// 我们调用这个过程,传入值为0,这样parameter1的值将为0。 3.CREATEPROCEDUREp12(INparameter1INT)BEGINDECLAREvariable1INT;SETvariable1=parameter1+1;<--IFvariabl
18、e1=0THENINSERTINTOtVALUES(17);ENDIF;IFparameter1=0THENUPDATEtSETs1=s1+1;ELSEUPDATEtSETs1=s1+2;ENDIF;END;// 这里变量variable1被赋值为parameter1加1的值,所以执行后变量variable1为1。 4.CREATEPROCEDUREp12(INparameter1INT)BEGINDECLAREvariable1INT;SETvariable1=parameter1+1;IFvariable1=0THEN<--INSERTINTOt
19、VALUES(17);ENDIF;IFparameter1=0THENUPDATEtSETs1=s1+1;ELSEUPDATEtSETs1=s1+2;ENDIF;END;// 因为变量variable1值为1,因此条件ifvariable1=0为假, IF ENDIF 被跳过,没有被执行。 5.CREATEPROCEDUREp12(INparameter1INT)BEGINDECLAREvariable1INT;SETvariable1=parameter1+1;IFvariable1=0THENINSERTINTOtVALUES(17);END
20、IF;IFparameter1=0THEN<--UPDATEtSETs1=s1+1;ELSEUPDATEtSETs1=s1+2;ENDIF;END;// 到第二个IF条件,判断结果为真,于是中间语句被执行了 6.CREATEPROCEDUREp12(INparameter1INT)BEGINDECLAREvariable1INT;SETvariable1=parameter1+1;IFvariable1=0THENINSERTINTOtVALUES(17);ENDIF;IFparameter1=0THENUPDATEtSETs1=s1+1;<-
21、-ELSEUPDATEtSETs1=s1+2;ENDIF;END;// 因为参数parameter1值等于0,UPDATE语句被执行。如果parameter1值为NULL,则下一条UPDATE语句将被执行现在表t中有两行,他们都包含值5,所以如果我们调用p12,两行的值会变成6。 7.mysql>CALLp12(0)//QueryOK,2roysql>SELECT*FROMt//+------+
22、s1
23、+------+
24、6
25、
26、6
27、+------+2roeter1INT)BEGINDECLAREvariable1INT;SETvariable1=
28、parameter1+1;CASEva
此文档下载收益归作者所有