MySQL函数以及循环结构

上传人:小** 文档编号:98265994 上传时间:2022-05-29 格式:DOC 页数:5 大小:131KB
收藏 版权申诉 举报 下载
MySQL函数以及循环结构_第1页
第1页 / 共5页
MySQL函数以及循环结构_第2页
第2页 / 共5页
MySQL函数以及循环结构_第3页
第3页 / 共5页
资源描述:

《MySQL函数以及循环结构》由会员分享,可在线阅读,更多相关《MySQL函数以及循环结构(5页珍藏版)》请在装配图网上搜索。

1、MySQL函数以及循环结构函数与存储过程有什么区别函数:一组预先编译号的语句的集合,理解成批处理语句提高代码重用性简化操作减少编译次数和数据库服务器的连接次数,提高效率区别:存储过程:可以有个返回,也可以有多个返回,(批量插入,批量更新)函数:有且仅有一个返回(适合做处理数据后返回一个结果)创建语法:-口函数名(参数列表)返回类型函数体函数体:肯定会有语句,如果没有会报错,如果语句没有放在函数体的最后也不会报错,但不建议,建议值放到最后函数体中仅有一句话的时候,则可以省略使用语句设置结束标记二调用语法函数名(参数列表)代码演示yyy*删除函数y查看函数函数名yy定义一个用户变量yemploye

2、e*以上y创建函数错误y-此函数中没有声明不太安全的*解决办法MiSSQIL变量)MSSQLSSQLd只用声明才会启用二进制日志记录(您可能想使用-第一种办法,需要声明DETERMINISTIC,NOSQL或READSSQLDATA的一种第二种办法,信任子程序的创建者,设置变量og_bin_trust_function_creatorS直为1-查看该参数,默认为0 selectlog_bin_trust_function_creators-设置为1 setGLOBALlog_bin_trust_function_creators=1;-使用样例*函数声明NOSQL -mysql中创建一个自定义

3、函数 delimiter$ createfunctionfun_addnum()-注意是returns而不是return returnsint NOSQL begin seti=0; add_num:LOOP seti=i+1; -leave用于跳出循环 ifi=10thenleaveadd_num; -iterate跳过后面语句进入下一循环 elseifmod(i,2)=0theniterateadd_num; endif;-结束循环 endloopadd_num; returni; end$ delimiter; selectfun_addnum();函数声明DETERMINISTIC,表

4、示该函数在每次为其参数调用相同值时都返回相同的结果值 delimiter$ createfunctionfun_hello(xint) returnsint DETERMINISTIC comment这是注释 begin declareiintdefault1; declarejintdefault10; casex whenithensetx=i; whenjthensetx=j; elsesetx=i+j; endCASE; returnx; end$ delimiter; selectfun_hello(2);设置变量log_bin_trust_function_creators的方式-

5、设置为1,此时才可以使用CONTAINSSQL,MODIFIESSQLDATA setGLOBALlog_bin_trust_function_creators=1; delimiter$ createfunctionfun_temp() returnsint -READSSQLDATA MODIFIESSQLDATA begin declarecntintdefault0; repeat setcnt=cnt+1; untilcnt=10endrepeat; returncnt; end$ delimiter;流程控制结构顺序结构:程序从上往下依次执行分支结构:程序从两条或多条路径中选择一条

6、去执行循环结构:满足一定条件基础上。重复执行一段代码分支结构:if函数:实现简单的双分支selectif(B1,B2,B3)如果B1成立,则if函数返回B2的值,否则返回B3的值任何地方 case结构:相当于switch语句一般实现等值判断语法:case变量|表达式|字段when判断的值then返回值|语句when判断的值then返回值|语句when判断的值then返回值|语句else要返会的值n|语句end 类似于java中多重if,区间判断语法:casewhen条件then返回值|语句when条件then返回值|语句when条件then返回值|语句else要返会的值n|语句end特点::-

7、可以作为表达式嵌套再其他语句中使用,也可以放在任何地方,beginend中或外面:、也可以作为独立的语句去使用,只能放在beginend中实例::,delimiter$createproceduretestcase(insalint)begincasewhensal=90thenselectA;whensal=80thenselectB;whensal=70thenselectC;elseselectD;endcase;end$calltestcase(82)$ if结构,实现多重分支匚语法:if条件1then语句1 elseif条件then语句2 else语句n endif i应用在begi

8、nend中-实例:delimiter$createfunctiontestif(socreint)returnscharnosqlbeginifsocre=90andsocre=80thenreturnB;elseifsocre=70thenreturnC;elsereturnE;endif;end$delimiter;selecttestif(89)$;-循环结构-分类 while loop repeat:循环控制iterate类似于continue,继续,结束本次循环,继续下一次leave类似于break,跳出,结束循环-while语法: while条件do循环体;_ endwhile标签

9、;:实例:#批量插入delimiter$createprocedurepro_while1(ininsertCountint)begindeclareiintdefault1;a:whilei=insertCountdoinsertintodb01.tab1(id,age)values(i,i*10);seti=i+1;endwhilea;end$callpro_while1(7)$;select*fromtab1; delimiter$createprocedurepro_while2(ininsertCountint)begindeclareiintdefault1;a:whilei=20

10、thenleavea;endif;seti=i+1;endwhilea;end$callpro_while2(21);select*fromtab1;delimiter$createprocedurepro_while3(ininsertCountint)begindeclareiintdefault0;a:whileivinsertCountdoseti=i+1;ifmod(i,2)!=0theniteratea;endif;insertintotab1(id,age)values(i,i*10);endwhilea;end$callpro_while3(30);select*fromtab1;:loop语法loop循环体 endloop标签;用来模拟死循环:repeat语法:标签repeat循环体 until结束循环条件 endrepeat标签;总结:

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!