- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
数据库存储过程面试题及答案
一、基础概念题
什么是存储过程?相比直接写SQL语句,它有哪些优势?
答:存储过程是数据库中预编译好的一组SQL语句集合,可像函数一样被调用。优势有3点:
复用性:一次创建多次调用,避免重复写SQL;
性能好:预编译后存储在数据库,调用时无需重新解析SQL(MySQL8.0后默认缓存执行计划);
安全性:可通过权限控制让用户调用存储过程,但不直接访问表,避免误操作或数据泄露。
存储过程和函数(UDF)有什么核心区别?
答:最关键的3个区别:
返回值:函数必须有且只有1个返回值(可用于SELECT语句中,如SELECTfunc(id));存储过程可无返回值,或通过OUT/INOUT参数返回多个值;
用途:函数侧重计算并返回结果(如计算订单金额);存储过程侧重执行批量操作(如批量更新用户状态);
权限:函数默认不能执行DML(INSERT/UPDATE/DELETE),存储过程无此限制。
二、实操应用题
请写一个MySQL存储过程,实现“根据用户ID查询用户姓名和手机号”,要求支持输入用户ID,输出姓名和手机号。
答:代码示例(含参数定义和异常处理):
DELIMITER//--临时修改语句结束符,避免与存储过程内分号冲突
CREATEPROCEDUREGetUserInfo(
INin_user_idINT,--输入参数:用户ID
OUTout_usernameVARCHAR(50),--输出参数:姓名
OUTout_phoneVARCHAR(20)--输出参数:手机号
)
BEGIN
--异常处理:若查询无结果,设置输出为NULL
DECLAREEXITHANDLERFORNOTFOUND
BEGIN
SETout_username=NULL;
SETout_phone=NULL;
END;
--核心查询逻辑
SELECTusername,phone
INTOout_username,out_phone
FROMusers
WHEREuser_id=in_user_id;
END//
DELIMITER;
--调用方式
CALLGetUserInfo(1001,@uname,@phone);
SELECT@unameASusername,@phoneASphone;
如何在存储过程中处理异常?比如“批量插入订单时,若某条数据主键冲突,跳过该条继续插入其他数据”。
答:用DECLAREHANDLER捕获异常,结合循环实现“跳过错误”。示例(MySQL):
DELIMITER//
CREATEPROCEDUREBatchInsertOrders(
INorder_dataJSON--输入参数:JSON格式的订单列表,如[{order_id:1,user_id:101},{order_id:2,user_id:102}]
)
BEGIN
DECLAREiINTDEFAULT0;
DECLAREtotalINTDEFAULTJSON_LENGTH(order_data);
DECLAREcurr_orderJSON;
DECLAREcurr_order_idINT;
DECLAREcurr_user_idINT;
--捕获主键冲突异常,仅打印提示不中断流程
DECLARECONTINUEHANDLERFOR1062--1062是MySQL主键冲突错误码
BEGIN
SELECTCONCAT(订单ID,curr_order_id,已存在,跳过插入)ASmsg;
END;
--循环遍历JSON数据
WHILEitotalDO
SETcurr_order=JSON_EXTRACT(order_data,CONCAT($[,i,]));
SETcurr_order_id=JSON_UNQUOTE(JSON_EXTRACT(curr_order,$.order_id));
SETcurr_user_id=JSON_UNQUOTE(JSON_EXTRACT(curr_order,$.user_id));
您可能关注的文档
- 朝霞主题知识试卷.docx
- 断层解剖学试题及答案.docx
- 方正微电子普工面试题及答案.docx
- 机动车查验员考试题库及答案.docx
- 机动车教练员考试题库及答案.docx
- 教师面试100题及最佳答案.docx
- 教师能力水平测试题库及答案.docx
- 教师资格证笔试题目及答案.docx
- 教师资格证考试(教育知识与能力)试题及答案.docx
- 教师资格证考试面试题目及答案.docx
- 2025年稷山县气象局下属单位招聘备考题库附答案.docx
- 2025延安延长县总工会社会工作者招聘备考题库(6人)最新.docx
- 2025年获嘉县纪委监委下属事业单位招聘笔试参考题库附答案.docx
- 2025广西柳州市柳江区财政局招聘编外聘用人员2人备考题库附答案.docx
- 2025年贞丰县司法局下属单位招聘备考题库附答案.docx
- 2025广东东莞银行惠州分行招聘备考题库附答案.docx
- 2025年蓝山县民政局下属事业单位招聘笔试模拟试题附答案.docx
- 卫生法规模拟习题(附参考答案).pdf
- 2025年达县纪委监委下属事业单位招聘笔试模拟试题附答案.docx
- 2025浙江丽水市龙泉市选调公务员及选聘事业单位人员25人备考题库附答案.docx
最近下载
- 01、02、生化分析仪作业指导书.docx VIP
- 2025中国银发人居发展报告.pdf
- 上海环球金融中心钢结构设计与施工.pdf VIP
- 成都巿国有企业监事会业务工作规范.doc VIP
- 汽车学会-2023汽车智能座舱分级与综合评价白皮书.pdf VIP
- 政治站位不高政治意识不强的自查自纠报告三篇.docx VIP
- 办理出入境证件函(国家工作人员办护照用)(标准模板).pdf VIP
- 2025年新版人教版四年级上册英语 四上Unit 5 The weather and us 单元整体教学设计.pdf VIP
- 第十一章 第四节智力的发展(课件)《普通心理学》(人教版 第二版)同步教学.ppt VIP
- GB_50203-2011_砌体结构工程施工质量验收规范.pdf VIP
原创力文档


文档评论(0)