20存储程序和函数_mysql5_1

20存储程序和函数_mysql5_1

ID:14883511

大小:81.50 KB

页数:43页

时间:2018-07-30

20存储程序和函数_mysql5_1_第1页
20存储程序和函数_mysql5_1_第2页
20存储程序和函数_mysql5_1_第3页
20存储程序和函数_mysql5_1_第4页
20存储程序和函数_mysql5_1_第5页
资源描述:

《20存储程序和函数_mysql5_1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、20存储程序和函数_MySql5_1第20章:存储程序和函数目录20.1.存储程序和授权表20.2.存储程序的语法20.2.1.CREATEPROCEDURE和CREATEFUNCTION20.2.2.ALTERPROCEDURE和ALTERFUNCTION20.2.3.DROPPROCEDURE和和DROPFUNCTION20.2.4.SHOWCREATEPROCEDURE和SHOWCREATEFUNCTION20.2.5.SHOWPROCEDURESTATUS和SHOWFUNCTIONSTATUS20.2.6.CALL语句20.2.7.BEGIN...END复合语句2

2、0.2.8.DECLARE语句20.2.9.存储程序中的变量20.2.10.条件和处理程序20.2.11.光标20.2.12.流程控制构造20.3.存储程序、函数、触发程序和复制:常见问题20.4.存储子程序和触发程序的二进制日志功能MySQL5.1版支持存储程序和函数。一个存储程序是可以被存储在服务器中的一套SQL语句。一旦它被存储了,客户端不需要再重新发布单独的语句,而是可以引用存储程序来替代。下面一些情况下存储程序尤其有用:·当用不同语言编写多客户应用程序,或多客户应用程序在不同平台上运行且需要执行相同的数据库操作之时。·安全极为重要之时。比如,银行对所有普通操作使

3、用存储程序。这提供一个坚固而安全的环境,程序可以确保每一个操作都被妥善记入日志。在这样一个设置中,应用程序和用户不可能直接访问数据库表,但是仅可以执行指定的存储程序。存储程序可以提供改良后的性能,因为只有较少的信息需要在服务器和客户算之间传送。代价是增加数据库服务器系统的负荷,因为更多的工作在服务器这边完成,更少的在客户端(应用程序)那边完成上。如果许多客户端机器(比如网页服务器)只由一个或少数几个数据库服务器提供服务,可以考虑一下存储程序。存储程序也允许你在数据库服务器上有函数库。这是一个被现代应用程序语言共享的特征,它允许这样的内部设计,比如通过使用类。使用这些客户端

4、应用程序语言特征对甚至于数据库使用范围以外的编程人员都有好处。MySQL为存储程序遵循SQL:2003语法,这个语法也被用在IBM的DB2数据库上。MySQL对存储程序的实现还在进度中。所有本章叙述的语法都被支持,在有限制或扩展的地方会恰当地指出来。有关使用存储程序的限制的更多讨论在附录I,特性限制里提到。如20.4节,“存储子程序和触发程序的二进制日志功能”里所说的,存储子程序的二进制日志功能已经完成。20.1.存储程序和授权表存储程序需要在mysql数据库中有proc表。这个表在MySQL5.1安装过程中创建。如果你从早期的版本升级到MySQL5.1,请确定更新你的授

5、权表以确保proc表的存在。请参阅2.10.2节“升级授权表”。在MySQL5.1中,授权系统如下考虑存储子程序:·创建存储子程序需要CREATEROUTINE权限。·提醒或移除存储子程序需要ALTERROUTINE权限。这个权限自动授予子程序的创建者。·执行子程序需要EXECUTE权限。然而,这个权限自动授予子程序的创建者。同样,子程序默认的SQLSECURITY特征是DEFINER,它允许用该子程序访问数据库的用户与执行子程序联系到一起。20.2.存储程序的语法20.2.1.CREATEPROCEDURE和CREATEFUNCTION20.2.2.ALTERPROCE

6、DURE和ALTERFUNCTION20.2.3.DROPPROCEDURE和DROPFUNCTION20.2.4.SHOWCREATEPROCEDURE和SHOWCREATEFUNCTION20.2.5.SHOWPROCEDURESTATUS和SHOWFUNCTIONSTATUS20.2.6.CALL语句20.2.7.BEGIN...END复合语句20.2.8.DECLARE语句20.2.9.存储程序中的变量20.2.10.条件和处理程序20.2.11.光标20.2.12.流程控制构造存储程序和函数是用CREATEPROCEDURE和CREATEFUNCTION语句创建

7、的子程序。一个子程序要么是一个程序要么是一个函数。使用CALL语句来调用程序,程序只能用输出变量传回值。就像别其它函数调用一样,函数可以被从语句外调用(即通过引用函数名),函数能返回标量值。存储子程序也可以调用其它存储子程序。在MySQL5.1中,一个存储子程序或函数与特定的数据库相联系。这里有几个意思:·当一个子程序被调用时,一个隐含的USEdb_name被执行(当子程序终止时停止执行)。存储子程序内的USE语句时不允许的。·你可以使用数据库名限定子程序名。这可以被用来引用一个不在当前数据库中的子程序。比如,要引用一个与te

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

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

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