教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

SQL SERVER数据库的嵌套查询实验

来源:网络收集 时间:2026-05-15
导读: 数据库的嵌套查询实验 实验目的: 加深对嵌套查询语句的理解。 实验内容: 使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 实验步骤: 一. 使用带IN谓词的子查询 1. 查询与’刘晨’在同一个系学习的学生的信息: select * from student where sde

数据库的嵌套查询实验

实验目的:

加深对嵌套查询语句的理解。

实验内容:

使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。

实验步骤:

一. 使用带IN谓词的子查询

1. 查询与’刘晨’在同一个系学习的学生的信息:

select * from student where sdept in

(select sdept from student where sname='刘晨')

比较: select * from student where sdept =

(select sdept from student where sname='刘晨') 的异同

比较: select * from student where sdept =

(select sdept from student where sname='刘晨') andsname<>'刘晨V

比较: select S1.* from student S1, student S2 where S1.sdept=S2.sdept and S2.sname='刘晨'

2. 查询选修了课程名为’信息系统’ 的学生的学号和姓名:

SQL Server中: select sno, sname from student where sno in

(select sno from sc where cno in

(select cno from course where cname='信息系统'))

3. 查询选修了课程’1’和课程’2’的学生的学号:

select sno from student where sno in (selectsnofrom sc where cno='1')

and sno in (select sno from sc where cno='2')

比较: 查询选修了课程’1’或课程’2’的学生的sno:

select sno from sc where cno='1' or cno='2'

比较连接查询:

select A.sno from sc A, sc B where A.sno=B.sno and o='1' and o='2'

二. 使用带比较运算的子查询

4. 查询比’刘晨’年龄小的所有学生的信息:

select * from student where sage<

(select sage from student where sname='刘晨')

三. 使用带Any, All谓词的子查询

5. 查询其他系中比信息系(IS)某一学生年龄小的学生姓名和年龄;

select sname, sage from student where sage <Any

(select sage from student where sdept='IS')

and sdept<>'IS'

6. 查询其他系中比信息系(IS)学生年龄都小的学生姓名和年龄:

select sname, sage from student where sage <ALL

(select sage from student where sdept='IS')

and sdept<>'IS'

7. 查询与计算机系(CS)系所有学生的年龄均不同的学生学号, 姓名和年龄:

select sno,sname,sage from student where sage<>all

(select sage from student where sdept='CS')

四. 使用带Exists谓词的子查询和相关子查询

8. 查询与其他所有学生年龄均不同的学生学号, 姓名和年龄:

select sno,sname,sage from student A where not exists

(select * from student B where A.sage=B.sage and A.sno<>B.sno)

9. 查询所有选修了1号课程的学生姓名:

select sname from student where exists

(select * from sc where sno=student.sno and cno='1')

10. 查询没有选修了1号课程的学生姓名:

select sname from student where not exists

(select * from sc where sno=student.sno and cno='1')

11. 查询选修了全部课程的学生姓名:

select sname from student where not exists

(select * from course where not exists

( select * from sc where sno=student.sno and cno=o))

11. 查询至少选修了学生95002选修的全部课程的学生的学号:

select distinct sno from sc A where not exists

(select * from sc B where sno='95002'and not exists

(select * from sc C where sno=A.sno and cno=o))

12. 求没有人选修的课程号cno和cnamecname:

select cno,cname from course C where not exists

(select * from sc where o=o )

13*. 查询满足条件的(sno,cno)对, 其中该学号的学生没有选修该课程号cno的课程

select sno,cno from student,course where not exists

(select * from sc where cno=o and sno=student.sno)

14*. 查询每个学生的课程成绩最高的成绩信息(sno,cno,grade):

select * from sc A where grade=

(select max(grade) from sc where sno=A.sno )

思考:

如何查询所有学生都选修了的课程的课程号cno?

…… 此处隐藏:775字,全部文档内容请下载后查看。喜欢就下载吧 ……
SQL SERVER数据库的嵌套查询实验.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/106548.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)