ImageVerifierCode 换一换
格式:DOC , 页数:5 ,大小:23.50KB ,
资源ID:7570445      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7570445.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(存储过程和函数.doc)为本站会员(HR专家)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

存储过程和函数.doc

1、存储过程和函数存储过程和函数2011年05月26 日概念:存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合。存储过程和函数的区别:函数必须有返回值,而存储过程没有,存储过程的参数可以使用IN、OUT、INOUT类型,而函数只能是IN类型的。如果有函数从其他类型的数据库迁移到MySQL,那么就可能需要将函数改造成存储过程。 意义:调用存储过程和函数可以减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 操作:首先确认权限,如有权限,则可进行响应操作。 Example 1 : 创建新的过程 mysql select * from emp; /显示表emp

2、+-+-+-+-+ | ename | hiredate | sal | deptno | +-+-+-+-+ | zzx | 2000-01-01 | 2000.00 | 1 | | lisa | 2003-02-01 | 8000.00 | 2 | | bjguan | 0000-00-00 | 5000.00 | 1 | | wwj | 2003-08-06 | 3000.00 | 4 | | monica | 2006-03-02 | NULL | 3 | +-+-+-+-+ 5 rows in set (0.01 sec) mysql select hiredate - from e

3、mp - where deptno /手工执行条件选择结果显示,从表emp中选择符合deptno2500的hiredate列 +-+ | hiredate | +-+ | 2003-02-01 | | 0000-00-00 | +-+ 2 rows in set (0.00 sec) mysql delimiter * /通常在执行创建过程和函数之前,会通过“DELIMITER ?”命令将语句的结束符从“;”变成其他符号,这里设定的是*,创建完毕后会通过“DELIMITER ;”命令再将结束符改回成“;” mysql create procedure ch_hiredate_pro(in p_

4、deptno int(2),in p_sal decimal(10,2),out p_count int) /创建一个存储过程ch_hiredate_pro,3个参数分别是IN类型的p_deptno,数据类型int(2). - reads sql data /表示子程序包含读数据的语句,这个 特征值 提供子程序使用数据的内在信息,目前只提供给服务器,并没有根据这些 特征值 来约束过程实际使用数据的情况,如果没有明确给定,默认使用的是CONTAINS SQL(表示子程序不包含读或写数据的语句),此外还有NO SQL(表示子程序不包含SQL语句) - begin /过程开始 - select hi

5、redate - from emp - where deptno and salp_sal; - - select found_rows() into p_count; /将函数found_rows()的结果即满足要求的记录数赋值给P_COUNT - end * /过程结束 Query OK, 0 rows affected (0.00 sec) mysql delimiter ; /再将语句结束符改回; mysql call ch_hiredate_pro (4,2500,c); /调用过程,参数分别是4,2500,c +-+ | hiredate | +-+ | 2003-02-01 |

6、| 0000-00-00 | +-+ 2 rows in set (0.00 sec) Query OK, 0 rows affected (0.00 sec) mysql select c; +-+ | c | +-+ | 2 | +-+ 1 row in set (0.00 sec) SQL SECURITYDEFINER | INVOKER : 用来指定子程序该用创建子程序者的权限来执行,还是使用调用者的权限来执行,默认值是DEFINER。示例如下: mysql delimiter $ mysql mysql create procedure ch_hiredate_pro_invoke

7、r(in p_deptno int(2),in p_sal decimal(10,2),out p_count int) - sql security invoker /指定过程ch_hiredate_pro_invoker是以调用者的权限执行的 - begin - select hiredate - from emp - where deptno and salp_sal; - - select found_rows() into p_count; - end $ Query OK, 0 rows affected (0.01 sec) mysql delimiter ; mysql mys

8、ql grant execute on mysql.* to lisalocalhost; /赋予用户lisa执行存储过程的权限,但不能查询emp表 Query OK, 0 rows affected (0.00 sec) mysql exit; Bye rootlocalhost # mysql -ulisa Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 3 to server version: 5.0.45 Type help; or h for help. Type

9、c to clear the buffer. mysql use mysql; Database changed mysql call ch_hiredate_pro(4,2500,c); /上一个示例中创建的过程ch_hiredate_pro,SQL SECURITY的 特征值 默认为DEFINER,即以创建者的权限来执行 +-+ | hiredate | +-+ | 2003-02-01 | | 0000-00-00 | +-+ 2 rows in set (0.00 sec) Query OK, 0 rows affected (0.00 sec) mysql call ch_hiredate_pro_invoker(4,2500,c); /过程ch_hiredate_pro,SQL SECURITY的 特征值 为INVOKER,即以调用者的权限来执行,但用户lisa没有SELECT的权限 ERROR 1142 (42000): SELECT command denied to user lisalocalhost for table emp

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报