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