二级MySQL数据库程序设计-9

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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。

相关文档
最新文档