数据库计算题,大家帮一下 啊 谢谢了

(第三章的)
四 计算题
现有一教学管理系统,ER模型如下:

逻辑模型如下:

学生S(学号S# ,姓名SNAME ,性别SEX ,民族NATION,评价ASSESS)
教师T(教师号T# ,姓名TNAME )
讲授TC(教师号T# ,课号C#)
课程C(课号C# ,课名CNAME)
选课SC(学号S# ,课号C#,成绩SCORE)
说明:1、“选课SC”关系中的“成绩SCORE”字段取值类型为数值型,取值范围是0—100,选课时其默认值为NULL。其它字段取值类型均为字符型。关系中有下划线的字段为“主键”。
2、“学生S”关系中的“评估ASSESS”字段的默认值是NULL。
请用SQL语句做如下操作:
1、查询T# =‘T2’的教师所教课程的选课人数。
2、计算T# =‘T2’的教师所教课程的平均成绩。
3、计算S# =‘S2’的学生所选各门课的平均分。
4、计算S# =‘S2’的学生选课门数。
5、计算每个学生的平均分,输出格式为:学号,平均分,按平均分由高到低顺序输出。
6、查询2000级男同学信息。
7、查询选课人数不超过20人的课程信息。
8、从学生表中,删除2000级的全部学生。

2、现有一图书管理系统,ER模型如下:

逻辑模型如下:
中图分类(分类号,分类名称)
图书品种(品种号,分类号,书名,第一作者,出版社,出版日期,单价,数量,购买日期)
馆藏图书(书号,品种号,库房号,架位号,在馆否)
库房(库房号,面积,电话,校区,负责人,)
库位(库房号,架位号)
读者(读者号,姓名,密码,读者类型号,挂失否,停借否,停借日期,本年度超期还书次数)
读者类型(读者类型号,说明,最大借书数,最长借书天数)
借阅(书号,读者号,借书日期,还书日期)
说明:图书.购买年份,图书.价格,读者类型.最大借书数,读者类型.最大借书数的取值类型为数值型;读者.挂失否,读者.挂失否的取值类型为逻辑型;借阅.借书日期,借阅.还书日期的取值类型为日期型;其它取值类型为字符型。
请用SQL语句做如下操作:

1、查询借阅了书名为《数据库原理》的读者信息。

2、统计借书数量超过两本的读者数。

3、查询目前一本书也没借的读者。

4、读者号=‘20040001’的读者借了书号=‘74012310X-001’的书,请记录此信息。

5、将“本年度超期还书次数”大于5次的读者停借。

6、删除读者号以2000开头,所借图书都已还了的读者。

7、查询图书馆2000年所购买的图书品种,每种的数量、总金额。

8、查询图书分类号=‘TP311’的图书借出数量。

9、查询书名为《数据库系统教程》,作者为‘施伯乐’的书共有多少本、每本书典藏在哪个馆、是否在馆。

1、查询T# =‘T2’的教师所教课程的选课人数。
答案:select count(distinct sc.s#) from sc,tc where sc.c# = tc.c# and tc.t# = 'T2';
2、计算T# =‘T2’的教师所教课程的平均成绩。
答案:select sum(sc.score)/count(distinct sc.s#) from sc,tc where sc.c# = tc.c# and tc.t# = 'T2';
3、计算S# =‘S2’的学生所选各门课的平均分。
答案:select sum(score)/count(c#) from sc where S# =‘S2’;
4、计算S# =‘S2’的学生选课门数。
答案:select count(c#) from sc where S# =‘S2’;
5、计算每个学生的平均分,输出格式为:学号,平均分,按平均分由高到低顺序输出。
答案:select sum(score)/count(c#) ,s.s# from sc,s where s.s# = sc.s# group by s.s# order by sum(score)/count(c#);
6、查询2000级男同学信息。
答案:select * from s where s# like '2000%' and sex = '男';
7、查询选课人数不超过20人的课程信息。
答案:select c.* from c where c.c# in (select sc.c# from sc group by sc.c# having count(*) < 20);
8、从学生表中,删除2000级的全部学生。
答案:delete from s where s# like '2000%';追问

下面的还有个大题 也帮一下呗?谢了

追答

1、查询借阅了书名为《数据库原理》的读者信息。
答案:select 读者.* from 读者,借阅,馆藏图书,图书品种 where 读者.读者号 = 借阅.读者号 and 馆藏图书.书号 = 借阅.书号 and 馆藏图书.品种号 = 图书品种.品种号 and 图书品种.书名 = '数据库原理';

2、统计借书数量超过两本的读者数。
答案:select count(distinct 读者号) from 借阅 where group by 读者号 having count(书号) > 2;

3、查询目前一本书也没借的读者。
答案:select * from 读者 where not exists(select 1 from 借阅 where 借阅.读者号 = 读者.读者号);

4、读者号=‘20040001’的读者借了书号=‘74012310X-001’的书,请记录此信息。
答案:insert into 借阅 VALUES('74012310X-001','20040001',sysdate,null);

5、将“本年度超期还书次数”大于5次的读者停借。
答案:update 读者 set 停借否 = true where 本年度超期还书次数 > 5;

6、删除读者号以2000开头,所借图书都已还了的读者。答案:delete from 读者 where 读者号 like '2000%';
7、查询图书馆2000年所购买的图书品种,每种的数量、总金额。答案:select 品种号, 数量,单价*数量 from 图书品种 where 购买日期 >= to_date('20000101','yyyy-mm-dd') and 购买日期 < to_date('20010101','yyyy-mm-dd')
8、查询图书分类号=‘TP311’的图书借出数量。答案:select count(*) from 借阅,馆藏图书,图书品种 where 馆藏图书.书号 = 借阅.书号 and 馆藏图书.品种号 = 图书品种.品种号 and 图书品种.分类号 = 'TP311';
9、查询书名为《数据库系统教程》,作者为‘施伯乐’的书共有多少本、每本书典藏在哪个馆、是否在馆。
答案:select 馆藏图书.库房号 馆藏图书.在馆否 from 馆藏图书,图书品种 where 馆藏图书.品种号 = 图书品种.品种号 and 图书品种.书名 = '数据库系统教程' and 图书品种.第一作者 = '施伯乐';
select sum(图书品种.数量) from 馆藏图书,图书品种 where 馆藏图书.品种号 = 图书品种.品种号 and 图书品种.书名 = '数据库系统教程' and 图书品种.第一作者 = '施伯乐';

温馨提示:答案为网友推荐,仅供参考
相似回答