海南热带海洋学院专升本-数据库综合题
海南奥赛教育备考题库
1、设有如下三个基本表,表结构如下:
BORROWER(借书证号,姓名,系名,班级)
LOANS(借书证号,图书登记号,借书日期)
BOOKS(索书号,书名,作者,图书登记号,出版社,价格)
试用SQL语言进行查询:
(1)检索借了5本书以上的学生的借书证号、姓名、系名和借书数量。
(2)检索借书和欧阳同学所借图书中任意一本相同的学生的姓名、系
名、书名和借书日期。
(3)建立信息系学生借书的视图SB,该视图的属性列由借书证号、姓
名、班级、图书登记号、书名、出版社和借书日期组成。
解:
1)select借书证号,姓名,系名,count(*)
fromborrow,loans
whereborrow.借书证号=loans.借书证号
groupby 借书证号
havingcount(*)>5
2)select姓名、系名、书名和借书日期
fromborrow,loans
whereborrow.借书证号=loans.借书证号
and图书登记号in
{select图书登记号
feomborrow,loans
whereborrow.借书证号=loans.借书证号
and姓名=欧阳}
3)creatview sb(借书证号、姓名、班级、图书登记号、书名、出版社
和借书日期)
as
select 借书证号、姓名、班级、图书登记号、书名、出版社和借书日
期
from borrow,loans
whereborrow.借书证号=loans.借书证号 andloans.图书登记号
=books。图书登记号
2、现有关系模式:教务(学号,课程号,成绩,教师姓名,教师年
龄,教师办公室),其中,学号与课程号组成主键。请将其进行无损
联接分解,规范化至3NF。假设一门课程总是由一个教师讲授,但一
个教师可以教多门课程,教师可能重名。
3、上题所得到的结果关系模式,用SQL语言执行下列操作。
①定义所得关系(表)结构。
②查询年龄在30-35岁之间的教师所教课程的成绩单。
③插入一条记录:9607001号学员C12号课程成绩为80分。
④将教师张三的办公室从“7-401”搬到“7-418”。
⑤停开(即删除)选课人数不足5人的课程
4、假设有三个关系模式如下:
学生表:S(SNO,SNAME,SEX)
各属性含义依次为学号、姓名和性别;
课程表:C(CNO,CNAME,CREDIT)
各属性含义依次为课程号、课程名、学分;
学生选课表:SC(SNO,CNO,MARK)
各属性含义依次为学号、课程号和成绩。
基于以上关系模式回答36—39题。
1.试用SQL语句统计男生和女生的人数。
selectsex,count(*) from s group by sex
2.试用SQL语句写出下列查询:
检索出所有男生的姓名、所选课程号和成绩。
selectsname,c#,grade from s,sc where s.s#=sc.s# and sex='男'
3.试用SQL语句实现下列查询:
检索出各门课程的学生平均成绩(要求列出课程名称和平均成绩)。
SELECTC.CNAME,AVG(score) as 平均成绩FROMC,SC where
C.CNO=SC.CNOGROUP BY SC.CNO
4.用关系代数表达式实现下列查询:
检索出没有选修课程号为C3的所有学生姓名。
selectsname from s where sno in (select sno from sc where cno not in
(selectcno from c where cno='c3'))