欢迎来到天天文库
浏览记录
ID:47193782
大小:69.50 KB
页数:9页
时间:2019-08-20
《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=0THENINSERTINTOtVALU
17、ES(17);ENDIF;IFparameter1=0THENUPDATEtSETs1=s1+1;ELSEUPDATEtSETs1=s1+2;ENDIF;END;// 这里是一个包含IF语句的过程。里面有两个IF语句,一个是IF语句ENDIF,另一个是IF语句ELSE语句ENDIF。我们可以在这里使用复杂的过程,但我会尽量使其简单让你能更容易弄清楚。 2.>>>这篇文章来自..,。> CALLp12(0)// 我们调用这个过程,传入值为0,这样parameter1的值将为0。 3.CR
18、EATEPROCEDUREp12(INparameter1INT)BEGINDECLAREvariable1INT;SETvariable1=parameter1+1;<--IFvariable1=0THENINSERTINTOtVALUES(17);ENDIF;IFparameter1=0THENUPDATEtSETs1=s1+1;ELSEUPDATEtSETs1=s1+2;ENDIF;END;// 这里变量variable1被赋值为parameter1加1的值,所以执行后变量vari
19、able1为1。 4.CREATEPROCEDUREp12(INparameter1INT)BEGINDECLAREvariable1INT;SETvariable1=parameter1+1;IFvariable1=0THEN<--INSERTINTOtVALUES(17);ENDIF;IFparameter1=0THENUPDATEtSETs1=s1+1;ELSEUPDATEtSETs1=s1+2;ENDIF;END;// 因为变量variable1值为1,因此条件ifvariab
20、le1=0为假, IF ENDIF 被跳过,没有被执行。 5.CREATEPROCEDUREp12(INparameter1INT)BEGINDECLAREvariable1INT;SETvariable1=parameter1+1;IFvariable1=0THENINSERTINTOtVALUES(17);ENDIF;IFparameter1=0THEN<--UPDATEtSETs1=s1+1;ELSEUPDATEtSETs1=s1+2;ENDIF;END;// 到第二个
21、IF条件,判断结果为真,于是中间语句被执行了 6.CREATEPROCEDUREp12(INparameter1INT)BEGINDECLAREvariable1INT;SETvariable1=parameter1+1;IFvariable1=0THENINSERTINTOtVALUES(17);ENDIF;IFparameter1=0THENUPDATEtSETs1=s1+1;<--ELSEUPDATEtSETs1=s1+2;ENDIF;END;// 因为参数parameter1值
22、等于0,UPDATE语句被执行。如果parameter1值为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
此文档下载收益归作者所有