admin 管理员组文章数量: 887021
2023年12月23日发(作者:throwable是啥意思)
项目5
一、选择题
1、 c
2、 B
3、 D
4、 A
5、 C
6、 A
7、 B
8、 C
9、 B
10、 D
二、 填空题
1、 系统变量
2、 BEGIN--END
3、 DELIMITER
4、 FOR EEACH ROW
5、 自动事务 手动事务
COMMIT
用户变量 局部变量
6、 START TRANSACTION
三、 判断题
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 People
SET @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 Varchar(4))
BEGIN
SELECT * FROM bdept WHERE deptid = deptjd;
END $$
DELIMITER ;
调用存储过程为:
CALL dept_information('200r);
3、
DELIMITER $$
CREATE PROCEDURE employee_salary(employee_id Char( 10))
BEGIN
SELECT eeld, name, sex, total_salary, deduct, final_salary
FROM bemployee Cl JOIN bsalary C2
ON eeid =eeid
WHERE Cl .employeeid = employee_id;
END $$
DELIMITER ;
DELIMITER $$
CREATE PROCEDURE reason_num(mreason Varchar(50), OUT num Int)
BEGIN
SELECT num=Count(*) FROM bleave
WHERE reason = mreason;
END $$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER del_salary AFTER DELETE
ON bemployee FOR EACH ROW
BEGIN
DELETE FROM bsalary WHERE employeeid = eeid;
END$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER leave_sum AFTER INSERT, UPDATE
ON bleave FOR EACH ROW
BEGIN
SELECT employeeid, Sum(days) AS 总天数 FROM bleave
WHERE employeeid = eeid
GROUP BY employeeid;
END$$
DELIMITER ;
版权声明:本文标题:《MySQL数据库技术及应用项目教程》 项目5 课后习题答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1703315803h446602.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论