《MySQL数据库技术及应用项目教程》 项目5 课后习题答案

上传人:黑** 文档编号:50637724 上传时间:2022-01-21 格式:DOCX 页数:4 大小:8.42KB
返回 下载 相关 举报
《MySQL数据库技术及应用项目教程》 项目5 课后习题答案_第1页
第1页 / 共4页
《MySQL数据库技术及应用项目教程》 项目5 课后习题答案_第2页
第2页 / 共4页
《MySQL数据库技术及应用项目教程》 项目5 课后习题答案_第3页
第3页 / 共4页
点击查看更多>>
资源描述
项目5一、选择题1、c2、B3、D4、A5、C6、A7、B8、C9、B10、D二、填空题1、系统变量用户变量 局部变量2、BEGIN-END3、DELIMITER4、FOR EEACH ROW5、自动事务手动事务6、 START TRANSACTIONCOMMIT三、判断题1、对2、对3、对4、错5、对6、对四、简答题1、答:存储过程具有如下优点:(1)模块化编程,代码可复用性好。(2)具有更快的执行速度。(3)减少网络通信量。(4)增强系统的安全性。存储过程与存储函数的区别如下4点:(1)语法中实现的标识符不同,存储过程使用PROCEDURE,函数为FUNCTIONo(2)存储过程在创建时没有返回值,而函数在定义时必须设置返回值。(3)存储过程没有返回值类型,且不能将结果直接赋值给变量;而函数定义时需要设置返回值类型,且在调用时除在SELECT中,必须将返回值赋给变量。(4)存储过程必须通过CALL进行调用,不能使用SELECT调用;而函数则可在SELECT语句中直接使用。2、答:游标的作用:游标提供了一种对SELECT语句结果集进行访问的机制。可以将游标理解为一个在结果集中可以逐行移动的指针,它指向结果集中的某一行,用户可以用SQL语句逐一从游标中获取记录,从而有选择地按行进行操作,而不是只能对整个结果集进行操作。游标的使用主要包括声明游标、打开游标、移动游标指针并从游标结果集中读取数据和关闭游标4个步骤。3、答:触发器是一种特殊的存储过程,主要用于保证数据的完整性和强制使用业务规则。触发器具有以下优点:(1)触发器可以实现对数据库中的相关表的级联操作;(2)触发器可以用来定义比CHECK约束更复杂的限制;(3)触发器可以用来定义错误信息;(4)触发器可以用来实现更精细和更复杂的数据操作。4、答:根据激活触发器时机的不同,MySQL触发器可以分为BEFORE触发器和AFTER触发器两种类型。其区别为:BEFORE表示触发器是在激活它的语句之前触发,如果想要验证新数据是否满足使用的限制,则使用BEFORE触发器;AFTER表示触发器是在激活它的语句之后触发,如果想要在激活触发器的语句执行之后执行触发器指定的动作,通常使用AFTER触发器。5、什么是事务?它有何作用?答:所谓事务,是指一个单元的工作,其中包括一系列的更新操作,这些操作要么全做,要么全部不做。事务是并发控制的基本单位,它对维护数据库的数据一致性非常重要。五、项目实践(训)题1、Use PeopleSET num二(SELECT Count(employeeld) FROM bemployee WHERE deptId=2003);成.SELECT num := Count(employeeld) FROM bemployee WHERE deptId=,2OO3,;2、DELIMITER $CREATE PROCEDURE dept_information(IN dept.id Varchar(4)BEGINSELECT * FROM bdept WHERE deptid = deptjd;END $DELIMITER ;调用存储过程为:CALL dept_information(200r);3、DELIMITER $CREATE PROCEDURE employee_salary(employee_id Char( 10)BEGINSELECT Cl.employeeld, name, sex, total_salary, deduct, final_salaryFROM bemployee Cl JOIN bsalary C2ON Cl.employeeid =C2.employeeidWHERE Cl .employeeid = employee_id;END $DELIMITER ;DELIMITER $CREATE PROCEDURE reason_num(mreason Varchar(50), OUT num Int)BEGINSELECT num=Count(*) FROM bleaveWHERE reason = mreason;END $DELIMITER ;DELIMITER $CREATE TRIGGER del_salary AFTER DELETEON bemployee FOR EACH ROWBEGINDELETE FROM bsalary WHERE employeeid = old.employeeid;END$DELIMITER ;DELIMITER $CREATE TRIGGER leave_sum AFTER INSERT, UPDATEON bleave FOR EACH ROWBEGINSELECT employeeid, Sum(days) AS 总天数 FROM bleaveWHERE employeeid = new.employeeidGROUP BY employeeid;END$DELIMITER ;
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 中学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!