数据库原理及应用实验指导★---实验4_SQL语言——SELECT查询操作(8)

2020-12-22 08:48

数据库原理与应用实验指导

SELECT SNAME,CNAME,GRADE

FROM (SELECT SNAME,CNAME,GRADE

FROM STUDENT,SC,COURSE

WHERE SSEX='女' AND STUDENT.SNO=SC.SNO AND http://www.77cn.com.cnO=http://www.77cn.com.cnO)

AS TEMP(SNAME,CNAME,GRADE)

WHERE GRADE>90; -- 特意用查询表达式实现,完全可用其它方式实现

但如下使用查询表达式的查询,则不易改写为其它形式。

[例27] 查询各不同平均成绩所对应的学生人数(给出平均成绩与其对应的人数)。 Select avgr,COUNT(*)

From (Select sno,avg(grade) From SC

Group By sno) as SG(Sno,avgr)

Group By avgr;

[例28] 查出学生、课程及成绩的明细信息及课程门数、总成绩及平均成绩。

SELECT sno,cno,grade -- COMPUTE的其它使用方法,请参阅帮助。

FROM sc

ORDER BY sno

COMPUTE count(cno),SUM(grade),avg(grade) BY sno

[例29] 建立信息系学生的视图(含有学号、姓名、年龄及性别),并要求进行修改和插入操作时仍须保证该视图只有信息系的学生。通过视图查找年龄大于等于18岁的女学生。

CREATE VIEW IS_Student

AS SELECT Sno,Sname,Sage,Ssex

FROM Student

WHERE Sdept='IS' WITH CHECK OPTION;

SELECT * FROM IS_Student WHERE Sage>=18 AND Ssex='女';

[例30] 设有学生-课程关系数据库,其数据库关系模式为:

学生S(学号S#,姓名SN,所在系SD,年龄SA)、课程C(课程号C#,课程名称CN,先修课号PC#)、学生选课SC(学号S#,课程号C#,成绩G)。

试用SQL语言分别写出下列查询(只需写出SQL命令):

(1) 求学生'98001'(为学号)所选的成绩为60以上的课程号。

(2) 求选读了“数据库概论”,并成绩为80或90的学生学号和姓名。

(3) 求选修了全部课程的学生学号、姓名及其所在系名。

(4) 找出没有学生选修的课程号及课程名称。

(5) 列出选课数超过3门的学生学号、其所修课程数及平均成绩。

(6) 删除“数据结构”课程及所有对它的选课情况。

解:

(1) SELECT C# FROM SC WHERE S#='98001' AND G>=60;

(2) SELECT S#,SN FROM S,SC,C

WHERE C.C#= SC.C# AND SC.S#=S.S# AND http://www.77cn.com.cn='数据库概论'

8


数据库原理及应用实验指导★---实验4_SQL语言——SELECT查询操作(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:汽车空调技术浅析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: