- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14章 MySQL的高级应用 MySQL 5.0之前的版本并不支持存储过程,随着MySQL技术的日趋完善,存储过程将在以后的项目中得到广泛的应用。曾几何时,虽然拥有高效等优点,MySQL还是因为不支持存储过程、视图等功能而受到很多程序员的抵触,随着MySQL的发展,这些高级功能终于在MySQL 5.0以后的版本中得以应用。 本章我们将介绍MySQL5的新特性:存储过程、触发器和视图。 14.1 MySQL与存储过程 存储过程能够允许绝大部分的数据库访问逻辑与程序逻辑分离开来。 存储过程的一个优点是,SQL可以被预先编译,由此提高了程序的速度,因为存储过程包含程序逻辑,可以在数据库服务器端执行更多的处理,由于存储在服务器上,所以存储过程是可复用的组件,客户端不管使用什么脚本语言与数据库连接,都可以直接调用它们; 另一个优点是存储程序可以提供改良后的性能,因为只有较少的信息需要在服务器和客户端之间传送,程序的代码变得更加小巧和容易理解。 代价是增加了数据库服务器系统的负荷,因为更多的工作要在服务器端完成。 14.1.1 存储过程的创建 一个存储过程包括名字、参数列表,并可以包括很多SQL语句。在MySQL中,创建存储过程的语句是CREATE PROCEDURE。其用法是: CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body MySQL中存储过程的建立以关键字CREATE PROCEDURE开始,后面是存储过程的名称和参数、复合语句和变量,这些将在下面的小节中依次说明。 14.1.2 存储过程的参数 1. IN——输入参数 输入参数表示要向存储过程中传入的参数,该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认参数类型。 2. OUT——输出参数 输出参数的值可在存储过程内部被改变,并可返回。 3. INOUT——输入输出参数 输入输出参数在调用时指定,并且可被改变和返回。 14.1.3 复合语句 CREATE PROCEDURE命令的参数后面,就是存储过程的主体了,在主体中书写常规的SQL语句,每句以分号(;)结束,主体中书写包含INSERT、UPDATE、DELETE、SELECT、DROP、CREATE、REPLACE的语句都是合法的,SET、COMMIT以及ROLLBACK也是合法的。 例如: CREATE PROCEDURE sp_name() BEGIN SET @a = 5; SET @b = 5; INSERT INTO t VALUES (@a); SELECT s1 * @a FROM t WHERE s1 = @b; END; 14.1.4 变量 在复合语句中,声明变量的指令是DECLARE,DECLARE仅被用于BEGIN/END复合语句内,并且必须被书写在复合语句的开头,书写顺序依次是DECLARE、变量名、变量类型,见如下DECLARE语句的例子: CREATE PROCEDURE sp_name() BEGIN DECLARE 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() BEGIN DECLARE a, b INT DEFAULT 5; //变量a、b被赋默认值5 INSERT INTO t VALUES (a); SELECT s1 * a FROM t WHERE s1 = b; END; 14.1.5 条件语句 在复合语句中可以使用if条件机制,来根据不同的情况选择不同的分支运行,和PHP的if条件语句类似。用法如下: if search_condition then statement else statement end if; if实现了一个基本的条件机制,如果search_condition条件求值为真,相应的SQL语句列表被执行。 14.1.6 循环语句 1. WHILE循环 语法形式为: WHILE expression DO statements END WHILE; 2. LOOP循环 语法形式为: LOOP statements END LOOP; 3. REPEAT UNTIL循环 语法形式为: REPEAT statements UNTIL expression END REPEAT; 14.1.7 存储过程的查看、更改和删
您可能关注的文档
- Mindmap思维导图.ppt
- mine三国演义lll.ppt
- MiniGUI编程与Sqlite编程.ppt
- MINI-TH温湿度记录仪产品介绍和操作方法.ppt
- MINITABBASICTRAININGmintab基础教程.ppt
- MINITAB中文版MSA(计量型数据操作方法).ppt
- MINITAB基本图表BasicGraphs.ppt
- MINITAB控制图制作I-Chart图形.ppt
- MINITAB应用质量管理技术系列培训(A阶段-回归分析).ppt
- MINITAB软件的使用简介.ppt
- 讲稿:深入理解“五个注重”把握进一步深化改革统筹部署以钉钉子精神抓好落实.pdf
- 副市长在2025年全市医疗工作会议上的讲话.docx
- 2025年市县处级以上党委(党组)理论学习中心组专题学习计划.docx
- 市民族宗教事务局党组书记、局长2024年度民主生活会个人对照检视发言材料.docx
- 烟草局党组书记2024年度抓基层党建工作述职报告.docx
- (汇编)学习2025年全国教育工作会议精神心得体会发言心得感悟.pdf
- 汇编学习领会在二十届中纪委四次全会上的重要讲话精神心得体会.pdf
- 在2025年镇安全生产、消防安全和生态环境保护第一次全体会议上的讲话提纲.docx
- 书记干部座谈会上的讲话+纪委全会上的讲话.pdf
- 党课:从毛泽东诗词中感悟共产党人初心使命.docx
文档评论(0)