MySQL的高级应用

MySQL的高级应用

ID:36449888

大小:1.71 MB

页数:24页

时间:2019-05-09

MySQL的高级应用_第1页
MySQL的高级应用_第2页
MySQL的高级应用_第3页
MySQL的高级应用_第4页
MySQL的高级应用_第5页
资源描述:

《MySQL的高级应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第14章MySQL的高级应用MySQL5.0之前的版本并不支持存储过程,随着MySQL技术的日趋完善,存储过程将在以后的项目中得到广泛的应用。曾几何时,虽然拥有高效等优点,MySQL还是因为不支持存储过程、视图等功能而受到很多程序员的抵触,随着MySQL的发展,这些高级功能终于在MySQL5.0以后的版本中得以应用。本章我们将介绍MySQL5的新特性:存储过程、触发器和视图。214.1MySQL与存储过程存储过程能够允许绝大部分的数据库访问逻辑与程序逻辑分离开来。存储过程的一个优点是,SQL可以被预先编译,由此提高了程序的速度,因为存储过程包含程序逻辑,可以在数据库服务器端执行更多的处理,由于

2、存储在服务器上,所以存储过程是可复用的组件,客户端不管使用什么脚本语言与数据库连接,都可以直接调用它们;另一个优点是存储程序可以提供改良后的性能,因为只有较少的信息需要在服务器和客户端之间传送,程序的代码变得更加小巧和容易理解。代价是增加了数据库服务器系统的负荷,因为更多的工作要在服务器端完成。314.1.1存储过程的创建一个存储过程包括名字、参数列表,并可以包括很多SQL语句。在MySQL中,创建存储过程的语句是CREATEPROCEDURE。其用法是:CREATEPROCEDUREsp_name([proc_parameter[,...]])[characteristic...]routi

3、ne_bodyMySQL中存储过程的建立以关键字CREATEPROCEDURE开始,后面是存储过程的名称和参数、复合语句和变量,这些将在下面的小节中依次说明。414.1.2存储过程的参数1.IN——输入参数输入参数表示要向存储过程中传入的参数,该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认参数类型。2.OUT——输出参数输出参数的值可在存储过程内部被改变,并可返回。3.INOUT——输入输出参数输入输出参数在调用时指定,并且可被改变和返回。514.1.3复合语句CREATEPROCEDURE命令的参数后面,就是存储过程的主体了,在主体中书写常规的SQL语句,每

4、句以分号(;)结束,主体中书写包含INSERT、UPDATE、DELETE、SELECT、DROP、CREATE、REPLACE的语句都是合法的,SET、COMMIT以及ROLLBACK也是合法的。例如:CREATEPROCEDUREsp_name()BEGINSET@a=5;SET@b=5;INSERTINTOtVALUES(@a);SELECTs1*@aFROMtWHEREs1>=@b;END;614.1.4变量在复合语句中,声明变量的指令是DECLARE,DECLARE仅被用于BEGIN/END复合语句内,并且必须被书写在复合语句的开头,书写顺序依次是DECLARE、变量名、变量类型,见

5、如下DECLARE语句的例子:CREATEPROCEDUREsp_name()BEGINDECLAREaINT;DECLAREbINT;SETa=5;SETb=5;INSERTINTOtVALUES(a);SELECTs1*aFROMtWHEREs1>=b;END;还可以在声明变量的同时使用DEFAULT,赋给默认值:CREATEPROCEDUREsp_name()BEGINDECLAREa,bINTDEFAULT5;//变量a、b被赋默认值5INSERTINTOtVALUES(a);SELECTs1*aFROMtWHEREs1>=b;END;714.1.5条件语句在复合语句中可以使用if条件

6、机制,来根据不同的情况选择不同的分支运行,和PHP的if条件语句类似。用法如下:ifsearch_conditionthenstatementelsestatementendif;if实现了一个基本的条件机制,如果search_condition条件求值为真,相应的SQL语句列表被执行。814.1.6循环语句1.WHILE循环语法形式为:WHILEexpressionDOstatementsENDWHILE;2.LOOP循环语法形式为:LOOPstatementsENDLOOP;3.REPEATUNTIL循环语法形式为:REPEATstatementsUNTILexpressionENDREP

7、EAT;914.1.7存储过程的查看、更改和删除(1)查看当前数据库中所有已存在的存储过程:showprocedurestatus;(2)查看某一个具体的存储过程:showcreateproceduresp_name;1014.1.8PHP5调用存储过程每次验证示例的存储过程时,我们都是使用CALL关键字后面加存储过程名和参数来调用定义好的存储过程,用法是:CALLsp_name()需要再次重申的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。