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

2020-12-22 08:48

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

SELECT Sname FROM Student

WHERE Sage>(SELECT MAX(Sage) FROM Student

WHERE Sdept='IS') AND Sdept<>'IS'

ORDER BY Sname;

[例18] 查询哪些课程只有女生选读。(本题有多于两种表达法)

SELECT DISTINCT CNAME

FROM COURSE C

WHERE '女'=ALL( SELECT SSEX FROM SC,STUDENT

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

或 SELECT DISTINCT CNAME FROM COURSE C

WHERE NOT EXISTS

( SELECT * FROM SC,STUDENT

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

[例19] 查询所有未修1号课程的学生姓名。

SELECT Sname FROM Student

WHERE NOT EXISTS

( SELECT * FROM SC WHERE Sno=Student.Sno AND Cno='1');

或 SELECT Sname FROM Student

WHERE Sno NOT IN (SELECT Sno FROM SC WHERE Cno='1');

但如下是错的:

SELECT Sname FROM Student,SC

WHERE SC.Sno=Student.Sno AND Cno<>'1';

[例20] 查询选修了全部课程的学生姓名(为了有查询结果,自己可调整一些表的)。 SELECT Sname FROM Student

WHERE NOT EXISTS

( SELECT * FROM Course

WHERE NOT EXISTS

(SELECT * FROM SC WHERE Sno=SC.Sno AND Cno=http://www.77cn.com.cno));

由于没有全称量词,我们将题目的意思转换成等价的存在量词的形式:查询这样的学生姓名没有一门课程是他不选的。

本题的另一操作方法是:

SELECT Sname FROM Student,SC WHERE Student.Sno=SC.Sno

Group by Student.Sno,Sname having count(*)>=(SELECT count(*) FROM Course);

[例21] 查询至少选修了学生98001选修的全部课程的学生号码。

本题的查询要求可以做如下解释,不存在这样的课程y,学生98001选修了y,而要查询的学生x没有选。写成的SELECT语句为:

SELECT Sno

FROM Student SX

WHERE NOT EXISTS

6


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

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

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

马上注册会员

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