77范文网 - 专业文章范例文档资料分享平台

2015网络数据库实验指导书(4)

来源:网络收集 时间:1970-01-01 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

FROM Student,Course,SC

WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Cname='数据库'

【SY4-04】查询没有选修“数学”课程的学生的学号和姓名。

SELECT Sno,Sname FROM Student WHERE Sno not IN ( SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM Course WHERE cname='数学' ) )

2 带有比较运算符的嵌套查询

【SY4-05】将SY4-01改为带有比较运算符的嵌套查询。

SELECT * FROM Student WHERE Dno= ( SELECT Dno FROM Student WHERE Sname='李勇'

)

3 带谓词ANY或ALL的嵌套查询

【SY4-06】查询其它系中比计算机系(DX01)某一学生年龄小的学生。 【方法一】

SELECT * FROM Student

WHERE Sbirth>ANY(SELECT Sbirth FROM Student WHERE Dno='DX01') AND Dno<>'DX01'

【方法二】

SELECT * FROM Student

WHERE Sbirth>(SELECT MIN(Sbirth) FROM Student WHERE Dno='DX01') AND Dno<>'DX01'

【SY4-07】查询其他系中比计算机系(DX01)学生年龄都小的学生。 【方法一】

SELECT * FROM Student

WHERE Sbirth>ALL(SELECT Sbirth FROM Student WHERE Dno='DX01') AND Dno<>'DX01'

【方法二】

SELECT *

12

FROM Student

WHERE Sbirth>(SELECT MAX(Sbirth) FROM Student WHERE Dno='DX01') AND Dno<>'DX01'

4 带谓词EXISTS的嵌套查询

【SY4-08查询所有选修了编号为“1”课程的学生姓名(Sname)。

SELECT Sno,Sname FROM Student WHERE EXISTS ( SELECT * FROM SC

WHERE Sno=Student.Sno AND Cno='1' )

【SY4-09查询所有选修了编号为“2”课程的学生姓名(Sname)。

SELECT Sno,Sname FROM Student WHERE NOT EXISTS ( SELECT * FROM SC

WHERE Sno=Student.Sno AND Cno='2' )

【SY4-10询与“李勇”在同一个系学习的学生信息。将【SY4-01】改为带谓词EXISTS的查询,其SQL语句如下:

SELECT Sno,Sname,Dno FROM Student A

WHERE EXISTS(SELECT * FROM Student B

WHERE B.Dno=A.Dno AND B.Sname='李勇' )

【SY4-11查询选修了所有课程的学生姓名。

由于没有全称量词,可将题目的意思转换成等价的用存在量词的形式:查询这样的学生,没有一门课程是他不选修的。其SQL语句为:

SELECT Sno,Sname FROM Student

WHERE NOT EXISTS(SELECT * FROM Course

WHERE NOT EXISTS(SELECT * FROM SC

WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Cno ) )

13

二、集合查询

1.并运算

【SY4-12查询选修了1号课程或4号课程的学生学号。 【方法一】

SELECT Sno FROM SC WHERE Cno='1' UNION

SELECT Sno FROM SC WHERE Cno='4'

【方法二】

SELECT DISTINCT Sno FROM SC

WHERE Cno='1' OR Cno='4'

【SY4-13查询电子系(DX02)的学生或年龄小于19岁的学生信息。 【方法一】

SELECT * FROM Student WHERE Dno='DX02' UNION

SELECT * FROM Student WHERE YEAR(GETDATE())-YEAR(Sbirth)<19

【方法二】

SELECT * FROM Student WHERE Dno='DX02' OR YEAR(GETDATE())-YEAR(Sbirth)<19

2.交运算

【SY4-14查询选修了1号课程并且同时选修了4号课程的学生学号。 【方法一】

SELECT Sno FROM SC WHERE Cno='1' INTERSECT

SELECT Sno FROM SC WHERE Cno='4'

【方法二】

SELECT Sno FROM SC

WHERE Cno='1' AND Sno IN ( SELECT Sno FROM SC WHERE Cno='4' )

【SY4-15】查询计算机系(DX01)的学生且年龄小于19岁的学生的交集,这实际上就是查询计算机系中年龄小于26岁的学生。 【方法一】

SELECT * FROM Student WHERE Dno='DX01' INTERSECT

SELECT * FROM Student WHERE YEAR(GETDATE())-YEAR(Sbirth)<19

14

【方法二】

SELECT * FROM Student WHERE Dno='DX01' AND YEAR(GETDATE())-YEAR(Sbirth)<19

【SY4-16】查询学号为“2012314101”和“2012394101”的学生同时选修的课程的课程号。 【方法一】

SELECT Cno FROM SC WHERE Sno='2012314101' INTERSECT

SELECT Cno FROM SC WHERE Sno='2012394101'

【方法2】

SELECT Cno FROM SC

WHERE Sno='2012314101' AND Cno IN ( SELECT Cno FROM SC

WHERE Sno='2012394101' )

3.差运算

【SY4-17】查询选修了1号课程但没有选修2号课程的学生学号。 【方法一】

SELECT Sno FROM SC WHERE Cno='1' EXCEPT

SELECT Sno FROM SC WHERE Cno='2'

【方法二】

SELECT Sno FROM SC

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

【SY4-18】查询计算机系(DX01)的学生与年龄小于19岁的学生的差集。本查询的等价说法是,查询计算机系中年龄不小于19岁的学生。 【方法一】

SELECT * FROM Student WHERE Dno='DX01' EXCEPT

SELECT * FROM Student WHERE YEAR(GETDATE())-YEAR(Sbirth)<19

【方法二】

SELECT * FROM Student WHERE Dno='DX01' AND YEAR(GETDATE())-YEAR(Sbirth)!<19

【SY4-19】查询学号为“2012314101”的学生选修,但没有被“2012394101”学生所选修的课程的课程号。

15

【方法1】

SELECT Cno FROM SC WHERE Sno='2012314101' EXCEPT

SELECT Cno FROM SC WHERE Sno='2012394101'

【方法2】

SELECT Cno FROM SC

WHERE Sno='2012314101' AND Cno not IN ( SELECT Cno FROM SC

WHERE Sno='2012394101' )

16

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2015网络数据库实验指导书(4)在线全文阅读。

2015网络数据库实验指导书(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/304815.html(转载请注明文章来源)
上一篇:辩证法.doc0
下一篇:短语词组归纳
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: