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

2020-12-22 08:48

实验4 SQL语言——SELECT查询操作

( SELECT * FROM SC SCY

WHERE SCY.Sno='98001' AND

NOT EXISTS

( SELECT * FROM SC SCZ

WHERE SCZ.Sno=SX.Sno AND http://www.77cn.com.cno=http://www.77cn.com.cno));

[例22] 查询选修了课程1或者选修了课程2的学生学号集。

SELECT Sno FROM SC WHERE Cno='1'

UNION

SELECT Sno FROM SC WHERE Cno='2';

[注意] 扩展的SQL中有集合操作并(UNION)、集合操作交(INTERSECT)和集合操作差(EXCEPT或MINUS)等。SQL的集合操作要求相容即属性个数、类型必须一致,属性名无关,最终结果集采用第一个结果的属性名,缺省为自动去除重复元组,各子查询不带Order By,Order By放在整个语句的最后。

[例23] 查询计算机科学系的学生与年龄不大于19岁的学生的交集。

SELECT * FROM Student WHERE Sdept='CS'

INTERSECT

SELECT * FROM Student WHERE Sage<=19; -- SQL Server 2000不支持运行

本查询等价于“查询计算机科学系中年龄不大于19岁的学生。”,为此变通法为: SELECT * FROM Student WHERE Sdept='CS' AND Sage<=19;

[例24] 查询选修课程1的学生集合与选修课程2的学生集合的差集。

SELECT Sno FROM SC WHERE Cno='1'

EXCEPT(或MINUS)

SELECT Sno FROM SC WHERE Cno='2'; -- SQL Server 2000不支持运行

本例实际上是查询选修了课程1但没有选修课程2的学生。为此变通法为:

SELECT Sno FROM SC

WHERE Cno='1' AND Sno NOT IN

(SELECT Sno FROM SC WHERE Cno='2');

[例25] 查询平均成绩大于85分的学号、姓名、平均成绩。

Select stu_no,sname,avgr

From Student,( Select sno,avg(grade) From SC

Group By sno) as SG(stu_no,avgr)

Where Student.sno=SG.stu_no And avgr>85;

SQL-92允许在 From中使用查询表达式,并必须为查询表达式取名。

它等价于如下未使用查询表达式的形式:

Select Student.Sno,Sname,AVG(Grade)

From Student,SC Where Student.Sno = SC.Sno

Group By Student.Sno,Sname HAVING AVG(Grade)>85;

[例26] 查出课程成绩在90分以上的女学生的姓名、课程名和成绩。

7


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

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

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

马上注册会员

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