MySQL的高级应用.ppt
《MySQL的高级应用.ppt》由会员分享,可在线阅读,更多相关《MySQL的高级应用.ppt(24页珍藏版)》请在三一办公上搜索。
1、2,第14章 MySQL的高级应用,MySQL 5.0之前的版本并不支持存储过程,随着MySQL技术的日趋完善,存储过程将在以后的项目中得到广泛的应用。曾几何时,虽然拥有高效等优点,MySQL还是因为不支持存储过程、视图等功能而受到很多程序员的抵触,随着MySQL的发展,这些高级功能终于在MySQL 5.0以后的版本中得以应用。本章我们将介绍MySQL5的新特性:存储过程、触发器和视图。,3,14.1 MySQL与存储过程,存储过程能够允许绝大部分的数据库访问逻辑与程序逻辑分离开来。存储过程的一个优点是,SQL可以被预先编译,由此提高了程序的速度,因为存储过程包含程序逻辑,可以在数据库服务器端
2、执行更多的处理,由于存储在服务器上,所以存储过程是可复用的组件,客户端不管使用什么脚本语言与数据库连接,都可以直接调用它们;另一个优点是存储程序可以提供改良后的性能,因为只有较少的信息需要在服务器和客户端之间传送,程序的代码变得更加小巧和容易理解。代价是增加了数据库服务器系统的负荷,因为更多的工作要在服务器端完成。,4,14.1.1 存储过程的创建,一个存储过程包括名字、参数列表,并可以包括很多SQL语句。在MySQL中,创建存储过程的语句是CREATE PROCEDURE。其用法是:CREATE PROCEDURE sp_name(proc_parameter,.)characteristi
3、c.routine_bodyMySQL中存储过程的建立以关键字CREATE PROCEDURE开始,后面是存储过程的名称和参数、复合语句和变量,这些将在下面的小节中依次说明。,5,14.1.2 存储过程的参数,1.IN输入参数输入参数表示要向存储过程中传入的参数,该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认参数类型。2.OUT输出参数输出参数的值可在存储过程内部被改变,并可返回。3.INOUT输入输出参数输入输出参数在调用时指定,并且可被改变和返回。,6,14.1.3 复合语句,CREATE PROCEDURE命令的参数后面,就是存储过程的主体了,在主体中书
4、写常规的SQL语句,每句以分号(;)结束,主体中书写包含INSERT、UPDATE、DELETE、SELECT、DROP、CREATE、REPLACE的语句都是合法的,SET、COMMIT以及ROLLBACK也是合法的。例如:CREATE PROCEDURE sp_name()BEGINSET a=5;SET b=5;INSERT INTO t VALUES(a);SELECT s1*a FROM t WHERE s1=b;END;,7,14.1.4 变量,在复合语句中,声明变量的指令是DECLARE,DECLARE仅被用于BEGIN/END复合语句内,并且必须被书写在复合语句的开头,书写顺序
5、依次是DECLARE、变量名、变量类型,见如下DECLARE语句的例子:CREATE PROCEDURE sp_name()BEGINDECLARE a INT;DECLARE b INT;SET a=5;SET b=5;INSERT INTO t VALUES(a);SELECT s1*a FROM t WHERE s1=b;END;还可以在声明变量的同时使用DEFAULT,赋给默认值:CREATE PROCEDURE sp_name()BEGINDECLARE a,b INT DEFAULT 5;/变量a、b被赋默认值5INSERT INTO t VALUES(a);SELECT s1*a
6、 FROM t WHERE s1=b;END;,8,14.1.5 条件语句,在复合语句中可以使用if条件机制,来根据不同的情况选择不同的分支运行,和PHP的if条件语句类似。用法如下:if search_condition thenstatementelsestatementend if;if实现了一个基本的条件机制,如果search_condition条件求值为真,相应的SQL语句列表被执行。,9,14.1.6 循环语句,1.WHILE循环语法形式为:WHILE expression DOstatementsEND WHILE;2.LOOP循环语法形式为:LOOPstatementsEND
7、LOOP;3.REPEAT UNTIL循环语法形式为:REPEATstatementsUNTIL expressionEND REPEAT;,10,14.1.7 存储过程的查看、更改和删除,(1)查看当前数据库中所有已存在的存储过程:show procedure status;(2)查看某一个具体的存储过程:show create procedure sp_name;,11,14.1.8 PHP5调用存储过程,每次验证示例的存储过程时,我们都是使用CALL关键字后面加存储过程名和参数来调用定义好的存储过程,用法是:CALL sp_name()需要再次重申的是,即使该存储过程没有参数传递,存储过
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 高级 应用
链接地址:https://www.31ppt.com/p-6512899.html