MySQL操作题第01套

MySQL 飞快学 524浏览

基本操作题(25分)

一个用于存放学生选课信息的数据库XK,由学生信息表student、课程信息表course和选课信息表ordering构成。其中,表student记录学生的学号、姓名、性别、年龄等信息;表course记录课程的课程号、课程名称、授课教室等信息;表ordering描述学生的选课信息,并记录学生所选课程的成绩。在考生文件夹下已创建了数据库XK、表student、表course和表ordering,并初始化了相应数据,请考生查阅其结构与数据,完成下列操作。注意:以下操作题必须编写相应的SQL语句,并至少执行一次该命令。

1) 使用UPDATE语句,将表student中字段stu_id为0002的学生年龄更新为 “20”。

2) 使用SELECT语句查询学生信息表中所有男生的姓名,且按年龄的升序排序,最后把此SELECT语句存入考生文件夹下的sj12.txt文件中。

3) 使用SELECT语句查询课程成绩不及格的学生姓名,并此SELECT语句存入考生文件夹下的sj13.txt文件中。

4) 建立一个名为stu_user的用户,并为其授予关于表student的SELECT、INSERT权限。

5) 使用INSERT语句向表ordering中添加如下一条信息:学号为0001的学生选修了课程号为005的课程,因该课程尚未结束,故目前没有成绩。

【参考答案】

1. UPDATE student SET stu_age=20 WHERE stu_id=0002
2. SELECT stu_name FROM student WHERE stu_sex='M' ORDER BY stu_age ASC
3. SELECT stu_name FROM student,ordering 
     WHERE student.stu_id=ordering.stu_no AND ordering.score<60
4. GRANT SELECT,INSERT ON student TO stu_user@'%'
5. INSERT INTO ordering VALUES(0001,0005,NULL)

【解题思路】

1.更新表的基本命令,命令格式为”UPDATE 表 SET 字段=新值 WHERE 条件”。

2.查询表的基本命令,查询出所有男生的姓名,使用”WHERE stu_sex=’M’ “作为条件,年龄升序排列使用”ORDER BY stu_age ASC”,注意ASC表示升序,DESC表示降序。

3.采用表内连接,连接条件是student表的学号等于ordering表的学号,并且使用判断条件”ordering.score<60"。注意,在两表联合查询的时候,需要用到其中某个表的字段,应该用"表名.字段"的方式。例如"WHERE stu_id=stu_no AND score<60"就是使用错误的方式。 4.考察GRANT的基础用法,多种权限使用","将权限名分隔开。 5.插入表的基本命令,命令格式为"INSERT INTO 表 VALUES(值1,值2...)"。

简单应用题(20分)

1) 使用如下SQL语句可在数据库XK中创建一个触发器,其实现在表student中删除学生信息时,可自动删除该学生的选课信息。
注意:在考生文件夹中的sj21.txt文件已给出部分程序,但程序不完整,请考生在横线处填上适当的内容后并把横线删除,使程序补充完整,并按原文件名保存在考生文件夹下,否则没有成绩。

USE XK;
CREATE _________ trigger_delete_student ________ DELETE
ON ________ FOR EACH ROW 
DELETE FROM _________ WHERE stu_no=OLD.stu_id;

2) 使用如下SQL语句可在数据库XK中创建一个存储过程,用于实现给定表course中一个课程号course_id,即可为表course中该课程号所对应的课程指定一个新的授课教室。
注意:在考生文件夹中的sj22.txt文件已给出部分程序,但程序不完整,请考生在横线处填上适当的内容后并把横线删除,使程序补充完整,并按原文件名保存在考生文件夹下,否则没有成绩。

USE XK;
DELIMITERS $$
CREATE __________ sp_update_room(IN cid INT, IN rno CHAR(20))
BEGIN 
  UPDATE course SET room=rno WHERE course_id=_________;
END ________

综合应用题(15分)

在考生文件夹下存有一个sj3.php文件简单的PHP程序,可实现通过该程序从数据库XK中查询出所有女同学的学号和姓名,并能以网页表格的形式列出这些学生的学号和姓名信息。
请考生在横线处填上适当的内容后并把横线删除,使其成为一段可执行的完整PHP程序,并按原文件名保存在考生文件夹下,否则没有成绩。