- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
老 狼 存储过程的概念 为什么使用存储过程 基本创建、删除语法 存储过程中的变量 BEGIN...END复合语句 流程控制结构语句 注释语法 使用权限 条件和异常处理程序 游标 存储过程的概念: 所谓的存储过程就是存储在数据库当中的可以执行特定工作(查询和更新)的一组SQL代码的程序段。 与自定义函数的区别: 自定义函数有且只有一个返回值,就像普通的函数一样,可以直接在表达式中嵌入调用。 存储过程可以没有返回值,也可以有任意个输出参数,必须单独调用。 ? 执行的本质都一样。只是函数有如只能返回一个变量的限制。而存储过程可以返回多个。而函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行。 函数限制比较多,比如不能用临时表,只能用表变量。还有一些函数都不可用等等。而存储过程的限制相对就比较少。 ? 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。 对于存储过程来说可以返回参数,而函数只能返回值或者表对象。 存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。 为什么使用存储过程: 存储过程的优点: 存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 当对数据库进行复杂操作时(如对多个表进行Update、Insert、Query、Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。 存储过程可以重复使用,可减少数据库开发人员的工作量。 安全性高,可设定只有某此用户才具有对指定存储过程的使用权。 基本的创建、删除语法: CREATE PROCEDURE sp_name ([proc_parameter[,...]])??? [characteristic ...] routine_body 默认地,子程序与当前数据库关联。要明确地把子程序与一个给定数据库关联起来,可以在创建子程序的时候指定其名字为db_name.sp_name。 ? sp_name 存储过程的名字 proc_parameter指定参数为IN, OUT,或INOUT characteristic 特征 routine_body 包含合法的SQL过程语句。 DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name 这个语句被用来移除一个存储程序或函数。即,从服务器移除一个制定的子程序。在MySQL 5.1中,你必须有ALTER ROUTINE权限才可用此子程序。这个权限被自动授予子程序的创建者。 IF EXISTS 子句是一个MySQL的扩展。如果程序或函数不存在,它防止发生错误。 基本的创建、调用、删除语法: delimiter // DROP PROCEDURE IF EXISTS test // CREATE PROCEDURE test /* 存储过程名 */ (IN inparms INT, OUT outparams varchar(32)) /* 输入参数 */ BEGIN /* 语句块头 */ DECLARE var CHAR(10); /* 变量声明 */ IF inparms = 1 THEN /* IF条件开始*/ SET var = hello; /* 赋值 */ ELSE SET var = world; END IF; /* IF结束 */ INSERT INTO t1 VALUES (var); /* SQL语句 */ SELECT name FROM t1 LIMIT 1 INTO outparams; END // del
您可能关注的文档
最近下载
- (新版)道路交通运输安全管理培训课件.pptx VIP
- 人教版小学六年级上册数学教学反思全册.pdf
- 快速康复在骨科护理中的应用.pptx
- 雷达原理.ppt VIP
- 华大九天EDA工具使用说明-全国工业和信息化技术技能大赛-集成电路EDA赛项技术资料.doc
- 儿科护理学练习题.doc
- 黑龙江中医药大学2022-2023学年《细胞生物学》期末考试试卷(A卷)附参考答案.docx
- 部编版四年级语文上册期末测试卷(八套)(附答案).docx
- 辽宁省营口市2023-2024学年九年级上学期期末数学试题.pdf VIP
- 电大《学前儿童卫生与保健》课程实践二:课程相关新闻(或身边)事件发现与点评 .doc VIP
文档评论(0)