1、学校________________班级____________姓名____________考场____________准考证号 …………………………密…………封…………线…………内…………不…………要…………答…………题………………………… 湖北中医药大学 《数据库》2023-2024学年第一学期期末试卷 题号 一 二 三 四 总分 得分 批阅人 一、单选题(本大题共25个小题,每小题1分,共25分.在每小题给出的四个选项中,只有一项是符合题目要求的.) 1、若要从成绩表中查询出
2、每个课程的平均成绩,并按照平均成绩降序排列,以下 SQL 语句正确的是( )( ) A. SELECT course_id, AVG(score) FROM score GROUP BY course_id ORDER BY AVG(score) DESC B. SELECT course_id, SUM(score) FROM score GROUP BY course_id ORDER BY SUM(score) DESC C. SELECT course_id, COUNT(score) FROM score GROUP BY course_id ORDER BY COUNT(s
3、core) DESC D. SELECT course_id, MAX(score) FROM score GROUP BY course_id ORDER BY MAX(score) DESC 2、若要从成绩表中查询出课程编号为“001”且成绩在 70 分到 90 分之间(包括 70 和 90 分)的学生学号,以下 SQL 语句正确的是( )( ) A. SELECT student_id FROM score WHERE course_id = '001' AND score BETWEEN 70 AND 90 B. SELECT student_id FROM score
4、WHERE course_id = '001' AND score >= 70 AND score <= 90 C. 以上两种都正确 D. 以上两种都不正确 3、若数据库中存在一个员工表,包含员工号、姓名和部门号字段,要查询每个部门的员工人数,应使用的 SQL 语句是( )( ) A. SELECT 部门号, COUNT(员工号) FROM 员工表 GROUP BY 部门号 B. SELECT 部门号, SUM(员工号) FROM 员工表 GROUP BY 部门号 C. SELECT 部门号, AVG(员工号) FROM 员工表 GROUP BY 部门号 D. SELECT
5、 部门号, MAX(员工号) FROM 员工表 GROUP BY 部门号 4、若要查询成绩为 80 到 90 分之间(包括 80 分和 90 分)的学生信息,以下 SQL 语句正确的是( )( ) A. SELECT * FROM Students WHERE score >= 80 AND score <= 90 B. SELECT * FROM Students WHERE score > 80 AND score < 90 C. SELECT * FROM Students WHERE score >= 80 OR score <= 90 D. SELECT * FROM
6、 Students WHERE score > 80 OR score < 90 5、若要在 SQL 中对查询结果进行分组后筛选,应使用的关键字是( )( ) A. GROUP BY B. HAVING C. WHERE D. ORDER BY 6、若要在 SQL 中查询表中不重复的记录,以下语句正确的是( )( ) A. SELECT DISTINCT * FROM table_name B. SELECT UNIQUE * FROM table_name C. SELECT ONLY * FROM table_name D. 以上都不对 7、数据库管理
7、系统能实现对数据库中数据的查询、插入、修改和删除,这类功能称为( )( ) A. 数据定义功能 B. 数据管理功能 C. 数据操纵功能 D. 数据控制功能 8、若要查询学生表中年龄最小的学生的信息,以下 SQL 语句正确的是( )( ) A. SELECT * FROM students WHERE age = MIN(age) B. SELECT * FROM students WHERE age = (SELECT MIN(age) FROM students) C. SELECT MIN(age), * FROM students D. SELECT * FRO
8、M students ORDER BY age ASC LIMIT 1 9、如果关系 R 和 S 进行自然连接时,只把 R 中原该舍弃的元组保存到新关系中,这种操作称为( )( ) A. 外连接 B. 内连接 C. 左外连接 D. 右外连接 10、在关系数据库中,实现“表中任意两行不能相同”的约束是靠( )( ) A. 外键 B. 属性 C. 主码 D. 列 11、若要从学生表中查询出姓名以“李”开头且年龄大于 20 岁的学生信息,以下 SQL 语句正确的是( )( ) A. SELECT * FROM students WHERE name LIKE
9、 '李%' AND age > 20 B. SELECT * FROM students WHERE name LIKE '%李' AND age > 20 C. SELECT * FROM students WHERE name LIKE '李%' OR age > 20 D. SELECT * FROM students WHERE name LIKE '%李' OR age > 20 12、在 SQL 中,用于对查询结果进行分组并筛选的关键字是( )( ) A. GROUP BY 和 HAVING B. ORDER BY 和 WHERE C. GROUP BY 和 W
10、HERE D. ORDER BY 和 HAVING 13、若要从成绩表中查询出每个学生的最高成绩,以下 SQL 语句正确的是( )( ) A. SELECT student_id, MAX(score) FROM score GROUP BY student_id B. SELECT student_id, MIN(score) FROM score GROUP BY student_id C. SELECT student_id, AVG(score) FROM score GROUP BY student_id D. SELECT student_id, SUM(scor
11、e) FROM score GROUP BY student_id 14、在一个关系 R 中,若每个数据项都是不可再分割的,那么 R 一定属于( )( ) A. 1NF B. 2NF C. 3NF D. BCNF 15、若要查询学生表中男生的平均年龄,以下 SQL 语句正确的是( )( ) A. SELECT AVG(age) FROM students WHERE gender = '男' B. SELECT SUM(age) FROM students WHERE gender = '男' C. SELECT COUNT(age) FROM students
12、WHERE gender = '男' D. SELECT MAX(age) FROM students WHERE gender = '男' 16、若要查询学生表中女生的姓名和年龄,并按照年龄降序排列,以下 SQL 语句正确的是( )( ) A. SELECT name, age FROM students WHERE gender = '女' ORDER BY age DESC B. SELECT name, age FROM students WHERE gender = '女' ORDER BY age ASC C. SELECT name, age FROM stude
13、nts ORDER BY age DESC WHERE gender = '女' D. SELECT name, age FROM students ORDER BY age ASC WHERE gender = '女' 17、若要从学生表中查询出前 20%的学生信息,以下 SQL 语句正确的是( )( ) A. SELECT * FROM students LIMIT 0.2 * COUNT() B. SELECT TOP 20% * FROM students C. SELECT * FROM students WHERE ROWNUM <= 0.2 * COUNT()
14、D. 以上都不对 18、若要在成绩表中找出每门课程的最高成绩,以下 SQL 语句正确的是( )( ) A. SELECT course_id, MAX(score) FROM score GROUP BY course_id B. SELECT course_id, MIN(score) FROM score GROUP BY course_id C. SELECT course_id, AVG(score) FROM score GROUP BY course_id D. SELECT course_id, SUM(score) FROM score GROUP BY cou
15、rse_id 19、设有关系模式:学生(学号,姓名,年龄,所在系),则“所在系”属性在关系中称为( )( ) A. 主码 B. 外码 C. 候选码 D. 非主属性 20、若要从学生表中删除年龄小于 18 岁的记录,以下 SQL 语句正确的是( )( ) A. DELETE FROM students WHERE age < 18 B. DROP FROM students WHERE age < 18 C. REMOVE FROM students WHERE age < 18 D. ERASE FROM students WHERE age < 18 2
16、1、在关系数据库中,实现“表中任意两行不能完全相同”的约束是( )( ) A. 实体完整性 B. 参照完整性 C. 用户定义完整性 D. 域完整性 22、若要查询成绩在 80 到 90 分之间(包括 80 和 90)的学生信息,以下 SQL 语句正确的是( )( ) A. SELECT * FROM students WHERE score >= 80 AND score <= 90 B. SELECT * FROM students WHERE score > 80 AND score < 90 C. SELECT * FROM students WHERE scor
17、e >= 80 OR score <= 90 D. SELECT * FROM students WHERE score > 80 OR score < 90 23、若要查询每个班级的平均成绩,以下 SQL 语句正确的是( )( ) A. SELECT class_id, AVG(score) FROM students GROUP BY class_id B. SELECT class_id, SUM(score) FROM students GROUP BY class_id C. SELECT class_id, COUNT(score) FROM students GR
18、OUP BY class_id D. SELECT class_id, MAX(score) FROM students GROUP BY class_id 24、若要在数据库中查询年龄在 18 到 25 岁之间的学生信息,以下 SQL 语句正确的是( )( ) A. SELECT * FROM students WHERE age >= 18 AND age <= 25 B. SELECT * FROM students WHERE age BETWEEN 18 TO 25 C. SELECT * FROM students WHERE age > 18 OR age < 2
19、5 D. SELECT * FROM students WHERE age IN (18, 25) 25、在关系模式 R(U,F)中,如果 X→Y,Y→Z,且 Y 不是 X 的子集,Z 不是 Y 的子集,则称 Z 对 X 是( )( ) A. 传递函数依赖 B. 部分函数依赖 C. 完全函数依赖 D. 平凡函数依赖 二、填空题(本大题共10小题,每小题2分,共20分.有多个选项是符合题目要求的.) 1、在数据库设计中,进行需求分析时常用的方法包括自顶向下和_______________两种。 2、SQL 语言中,用于创建表的命令是_______________。
20、 3、关系模式中的属性分为主属性和_______________属性。 4、若要在 SQL 中实现按照某个字段的取值范围进行分组,可以使用_______________函数。 5、在关系代数中,除法运算的结果是一个________________。 6、SQL 语言中,用于创建索引的语句是_______________。 7、SQL 语言中,用于授予权限的语句是_______________,用于收回权限的语句是_______________。 8、数据库系统中,用于保证数据一致性的机制是_______________。 9、数据库中的事务具有原子性、
21、一致性、隔离性和_______________性。 10、若要删除数据库中的某个表,应使用的 SQL 语句是_______________。 三、应用题(本大题共5个小题,共25分) 1、(本题5分)有实验表(Experiment),包含实验编号(Eno)、实验名称(EName)、所属课程号(Cno),编写 SQL 语句找出属于“数据库课程”的实验名称。 2、(本题5分)假设存在论文表(Paper),包含论文编号(PaperID)、论文题目(PaperTitle)、作者(Author)等字段。编写 SQL 语句,查询作者为“李四”的论文信息。
22、 3、(本题5分)教师培训表(TeacherTraining)有教师编号(TeacherID)、培训课程(TrainingCourse)、培训时间(TrainingTime)。查询参加过“教育技术”培训的教师编号。 4、(本题5分)已知成绩表(Score)包括学号(Sno)、课程号(Cno)、平时成绩(UsualGrade)、期末成绩(FinalGrade)。计算每个学生的总评成绩(总评成绩=平时成绩0.4 + 期末成绩 0.6),并按学号升序排列。 5、(本题5分)毕业论文表(GraduationThesis)有学生学号(St
23、udentNo)、论文题目(ThesisTitle)、指导教师编号(SupervisorID)。查询某位指导教师指导的学生的论文题目。 四、综合题(本大题共3个小题,共30分) 1、(本题10分)设有学生活动经费表(StudentActivityFund),包含经费编号(FundID)、活动名称(ActivityName)、经费金额(FundAmount)、经费来源(FundSource);学生活动表(StudentActivity),包含活动编号(ActivityID)、活动名称(ActivityName)。编写 SQL 语句,查询每个经费来源的活动名称及对应的经
24、费金额。 2、(本题10分)设有宿舍卫生检查表(DormitorySanitationInspection),包含检查编号(InspectionID)、宿舍号(DormitoryID)、卫生评分(SanitationScore);宿舍表(Dormitory),包含宿舍号(DormitoryID)、宿舍楼(Building)。编写 SQL 语句,查询每个宿舍楼卫生评分最低的宿舍号。 3、(本题10分)已知有教学改革意见表(TeachingReformOpinion),包含意见编号(OpinionID)、教师编号(TeacherID)、意见内容(OpinionContent)、提出时间(ProposalTime);教师表(Teacher),包含教师编号(TeacherID)、教师姓名(TeacherName)。用 SQL 语句找出每位教师提出的教学改革意见及提出时间。 第6页,共6页






