二级MySQL数据库程序设计-9
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二级MySQL数据库程序设计-9
(总分:100.00,做题时间:90分钟)
一、编程题(总题数:5,分数:63.00)
(1).在数据库db_test中创建一个事件,用于每个月将表content中姓名为“MySQL初学者”的留言人所发的全部留言信息删除,该事件开始于下个月并且在2016年12月31日结束。(分数:7.00)
__________________________________________________________________________________________ 正确答案:()
解析:在MySQL命令行客户端输入如下SQL语句即可实现:
mysql>USE db_test;
Database changed
mysql> DELIMITER $ $
mysql>CREATE EVENT IF NOT EXISTS event_delete_content
-> ON SCHEDULE EVERY 1 MONTH
-> STARTS CURDATE()+INTERVAL 1 MONTH
-> ENDS "2016-12-31"
-> DO
-> BEGIN
-> IF YEAR(CURDATE())<2013 THEN
-> DELETE FROM content
-> WHERE username="mYSQL初学者";
-> END IF;
-> END $ $
Query OK, 0 row affected (2.35 sec)
(2).临时关闭第1小题中创建的事件。(分数:7.00)
__________________________________________________________________________________________ 正确答案:()
解析:在MySQL命令行客户端输入如下SQL语句即可实现:
mysql>ALTER EVENT event_delete_content DISABLE;
Query OK, 0 row affected (0.00 sec)
(3).再次开启第2小题中临时关闭的事件。(分数:7.00)
__________________________________________________________________________________________ 正确答案:()
解析:在MySQL命令行客户端输入如下SQL语句即可实现:
mysql>ALTER EVENT event_delete_content ENABLE;
Query OK, 0 row affected (0.00 sec)
(4).将第3小题中开启的事件的名字修改为事件e_delete。(分数:7.00)
__________________________________________________________________________________________ 正确答案:()
解析:在MySQL命令行客户端输入如下SQL语句即可实现:
mysql>ALTER EVENT event_edlete_content
-> RENAME TO e_delete;
Query OK, 0 row affected (0.00 sec)
(1).在数据库db_test中创建一个存储过程,用于实现给定表content中一个留言人的姓名即可修改表content中该留言人的电子邮件地址为一个给定的值。(分数:7.00)
__________________________________________________________________________________________ 正确答案:()
解析:在MySQL命令行客户端输入如下SQL语句即可实现:
mysql>USE db_test;
Database changed
mysql>DELIMITER $ $
mysql>CREATE PROCEDURE sp_update_email(IN user_name VARCHAR(50), IN e_mail VARCHAR(50))
-> BEGIN
-> UPDATE content SET email=e_mail WHERE username=user_name;
-> END $ $
Query OK, 0 row affected(0.06 sec)
(2).删除第1小题中的存储过程。(分数:7.00)
__________________________________________________________________________________________
正确答案:()
解析:在MySQL命令行客户端输入如下SQL语句即可实现:
mysql>DROP PROCEDURE sp_update_email;
Query OK, 0 row affected(0.02 sec)
1.在数据库dh_score中创建一个存储函数,要求该函数能根据给定的学生学号和课程编号返回学生的成绩,如果数据库中没有给定的学生成绩则返回0。
(分数:7.00)
__________________________________________________________________________________________
正确答案:()
解析:在MySQL命令行客户端输入如下SQL语句即可实现这个存储函数:
mysql>USE db_score;
Database changed
mysql>DELIMITER $ $
mysql>CREATE FUNCTION fn_search(sno CHAR(10), cno CHAR(5))
-> RETURNS FLOAT
-> DETERMINISTIC
-> BEGIN
-> DECLARE SScore FLOAT;
-> SELECT score INTO SScore FROM tb_score
-> WHERE studentNo=sno AND courseNo=cno;
-> IF SScore IS NULL THEN
-> RETURN(SELECT 0);
-> ELSE RETURN SScore;
-> END IF;
-> END $ $
Query OK, 0 row affected(0.11 sec)
2.调用数据库db_score中的存储函数fn_search。
(分数:7.00)
__________________________________________________________________________________________
正确答案:()
解析:在MySQL命令行客户端输入如下SQL语句即可实现:
mysql>select fn_search("2014310102", "21004");
1 row in set<0.07 sec>
3.删除数据库dh_score中的存储函数fn_search。