- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
项目七-3存储过程和函数
任务目标
任务一创建存储过程和函数
任务二查看存储过程和函数
任务三 编程语法与流程控制
任务四 修改存储过程和函数
任务六删除存储过程和函数
创建存储过程和函数
主要内容:
创建存储过程
创建存储函数
重点难点:
设计和应用;
存储过程和函数应用
引入:
db_shop系统中要完成一个购买商品的订单的处理,一般需要考虑以下几步:
(1)在生成订单之前,首先需要查看商品库存中是否有相应商品;
(2)如果商品库存中不存在相应商品,需要向供应商订货;
(3)如果商品库存中存在相应商品,需要预定商品,并修改库存数量。
针对表的一个完整事务操作往往不是单条SQL语句就能实现的,而是需要一组SQL语句来实现。
可将一个完整事务操作中所包含的多条SQL语句创建为存储过程或函数,以方便应用。
存储过程和函数作用
存储过程和函数
可以简单地理解为一组经过编译并保存在数据库中的SQL语句的集合,可以随时被调用。
作用
模块化使用。将复杂的工作程序写成存储过程和函数,以后可通过带入不同的参数或不带参重复调用,大大方便了用户的使用。
执行效率高。存储过程和函数,执行多次时速度快。
降低网络流量。存储过程是存在服务器端、并在服务器端执行,调用执行时用一个EXECUTE指令来代替存储过程内所包含的大量SQL语句的传输,大大降低了网络流量。
安全性。当数据表需要保密时,可以利用存储过程来作为数据存取的管道,来控制用户对数据库信息访问的权限。
存储过程创建
查阅语法:
官网文档:/doc/refman/8.0/en/create-procedure.html
CREATE
[DEFINER=user]
PROCEDUREsp_name([proc_parameter[,...]])
[characteristic...]routine_body
characteristic:
COMMENTstring
|LANGUAGESQL
|[NOT]DETERMINISTIC
|{CONTAINSSQL|NOSQL|READSSQLDATA|MODIFIESSQLDATA}
|SQLSECURITY{DEFINER|INVOKER}
routine_body:
ValidSQLroutinestatement
存储过程创建
创建基本语法:
CREATEPROCEDUREproc_name([IN|OUT|INOUT]param_nametype[,…])
BEGIN
语句体(包括变量声明、控制语句、SQL语句)
END
说明:
IN|OUT|INOUT表示:输入参数、输出参数、输入输出参数。
语句体以BEGIN......END括住,每一个语句都要用分号“;”结尾。
由于存储过程内部语句要以分号结束,需要在定义存储过程前,用delimiter关键字定义其他字符作为结束标志。
存储过程调用
调用基本语法:
CALLsp_name([parameter[,...]])
CALLsp_name[()]
存储过程应用
使用不带参数的存储过程
mysqldelimiter$$--改变MySQLdelimiter为:“//”改变命令提交执行的标志符号,默认情况下,delimiter是分号;
mysqlCREATEPROCEDUREp_search()
BEGIN
SELECT*FROMgoods;
END$$
mysqldelimiter;--改回默认的MySQLdelimiter:“;”
mysqlCALLp_Search();
存储过程应用
使用带输入(IN)参数的存储过程
mysqldelimiter//--改变MySQLdelimiter为:“//”
mysqlCREATEPROCEDUREp_staferSearch(INsidCHAR(5))
BEGIN
SELECT*FROMstafferWHEREstaff_id=sid;
END//
mysqldelimiter;--改回默认的MySQLdelimiter:“;”
mysqlCALLp_staferSearch(10503);
存储过程应用
使用带输入(IN)参数和输出(OUT)参数的存储过程
mysqlDELIMITER//--改变MySQLdelimiter为:“//”
mysqlCREATEPROCEDUREp_c
您可能关注的文档
- 《MySQL数据库应用与管理项目化教程》课件_项目6-视图.pptx
- 《MySQL数据库应用与管理项目化教程》课件_项目5-1基本查询.pptx
- 《MySQL数据库应用与管理项目化教程》课件_项目5-3跨表连接查询.pptx
- 《MySQL数据库应用与管理项目化教程》课件_项目5-2 统计查询.pptx
- 《MySQL数据库应用与管理项目化教程》课件_项目八-1 触发器.pptx
- 《MySQL数据库应用与管理项目化教程》课件_项目7-1 运算符.pptx
- 《MySQL数据库应用与管理项目化教程》课件_项目2-2 应用数据库存储引擎--new.pptx
- 《计算机操作系统 》课件_3.2进程的概念.pptx
- 《计算机操作系统 》课件_4.4分段存储管理方式.pptx
- HVAC的概念HVACcn拜耳关于HVAC的讲解.ppt
最近下载
- 第3课 发现自我 完善自我 第二框-【中职专用】高一思想政治《心理健康与职业生涯》高效备课精品课件(高教版2023·基础模块).pptx
- 《汽车行业生产组织质量管理体系成熟度评价准则》(征求意见稿)编制说 .pdf VIP
- 2025年徐淮阜高速收费站招聘收费员32人笔试备考题库及答案解析.docx
- 纪州喷码技术(上海)有限公司环境影响报告书 .pdf VIP
- 教育数字化的现状与发展趋势.docx
- 七下第16课 《有为有不为》课件(共20张PPT).pptx
- GB-T 16584-1996橡胶用无转子硫化仪测定硫化特性.pdf
- 部编版语文一年级下册总体及各单元教学目标.doc VIP
- 论通勤工伤事故的责任竞合及处理模式_.doc VIP
- 鼻肠梗阻导管护理常规ppt.pptx
文档评论(0)