- 1、本文档共67页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库高级应用的技术03—[存储过程]
高等职业技术院校教材 《数据库高级应用技术》 主编:温立辉 wenlihui2004@163.com 存储过程 本单元教学目标 了解存储过程的种类 认识、了解存储过程的作用 掌握存储过程的开发语法 熟练使用数据库IDE开发、调试存储过程 存储过程概念(一) SQL语句: SQL语句在执行的时候需要先编译,然后执行 存储过程: 存储过程(Stored Procedure) 是一组为了完成特定功能的SQL语句集 经编译后存储在数据库中 用户通过指定存储过程的名字与参数(如果该存储过程带有参数)来调用执行它。 存储过程概念(二) 一个存储过程是一个可编程的函数 它在数据库中创建并保存 它由SQL语句和一些特殊的控制结构组成 存储过程适用于以下场合 在不同的平台(应用程序)上执行相同的函数 封装特定功能 是数据库编程中面向对象方法的模拟 存储过程优点(一) (1).存储过程增强了SQL语言的功能和灵活性 存储过程可以用流控制语句编写,有很强的灵活性 可以完成复杂的判断和较复杂的运算 (2).存储过程是允许编程的标准组件 被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句 数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响 (3).存储过程能实现较快的执行速度 如果某一操作包含大量的SQL代码或分别被多次执行, 存储过程比批处理执行速度快很多,因存储过程是预编译的 批处理的SQL语句在每次运行时要进行编译,速度相对慢 存储过程优点(二) (4).存储过程能过减少网络流量。 当同一操作所涉及的众多SQL语句被编码到存储过程中 在客户机上调用该存储过程时,网络中只需传送该调用语句 从而大大减少了网络流量并降低了网络负载 (5).存储过程被作为一种安全机制来充分利用 系统管理员通过执行某一存储过程的权限进行限制 能够实现对相应的数据的访问权限的限制, 避免了非授权用户对数据的访问,从而保证了数据的安全 存储过程的创建 MySQL格式: CREATE PROCEDURE 存储过程名 ([过程参数[,...]]) BEGIN … 过程控制语句(Transaction-SQL) … END 存储过程案例-创建User表 CREATE DATABASE IF NOT EXISTS mydb; USE mydb; DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `user_id` int(10) unsigned NOT NULL auto_increment, `user_name` varchar(45) NOT NULL, `pass_word` varchar(45) NOT NULL, `email` varchar(45) NOT NULL, `phone` varchar(45) NOT NULL, `sex` char(1) NOT NULL, `score` int(10) unsigned NOT NULL, PRIMARY KEY (`user_id`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; INSERT INTO `user` (`user_id`,`user_name`,`pass_word`,`email`,`phone`,`sex`,`score`) VALUES (1,LiMing,LiMing,LiMing@0,60), (2,ZhuangPing,ZhuangPing,ZhuangPing@0,70), (3,LuMei,LuMei,LuMei@1,80), (4,QiaoBing,QiaoBing,QiaoBing@1,70), (5,Kerry,Kerry,Kerry@1,50), (6,Jetty,Jetty,Jetty@0,90), (7,Lucy,Lucy,Lucy@0,40), (8,Honey,Honey,Honey@1,80), (9,Wendy,Wendy,Wendy@0,50), (10,Rose,Rose,Rose@0,30); 存储过程案例-开发编码 DELIMITER // CREATE PROCEDURE proc1(in s int) BEGIN update user set score=s
文档评论(0)