- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实 验 三 综合查询
实验目的:
熟练掌握数据表的连接查询、嵌套查询和集合查询,为后续学习作准备。
实验属性(验证性)
熟练掌握SQL管理控制台的使用;
掌握表的复杂查询操作。
实验仪器环境与要求
PC机,SQL SERVER2005。
实验要求
1.复习教材第三章,熟悉SQL语句。
2.掌握多表查询语句的一般格式。;
3.掌握多表无条件、有条件查询及查询结果排序与分组。
4.掌握多表连接、嵌套和集合查询语句的一般格式及各种使用方法。
实验原理
SQL语言基本应用。
实验步骤:
(1) 启动SQL SERVER 2005。
(2) 附加数据库;
(3) 验证如下例子:
1 不同表之间的连接查询
1. 查询每个学生及其选修课程的情况包括没选课的同学。
SELECT STUDENT.*,sc.*
from student left outer join sc on(STUDENT.Sno=SC.Sno)
2. 查询每个学生的学号(Sno)、姓名(Sname)、选修的课程名(Cname)及成绩(Grade)并按照学号升序,课程号降序排列。
SELECT student.sno,sname,cname,grade
from student,sc,course
where student.sno=sc.sno and course.cno=sc.cno
order by student.sno,grade desc
2 自身连接
3. 查询每一门课的先修课的课程名和学分。
select first.cno,second.cname,second.ccredit
from course first,course second
where first.cpno= second.cno
4. 查询与”张林林”年龄一样大的计算机系的同学姓名.
select second.sname
from student first,student second
where first.sage=second.sage and first.sname=张林林 and second.sdept=计算机系
3 基本的嵌套查询
5. 查询王位同学没修的课程的课程号
select cno
from course
where cno not in(select sc.cno
from sc,student
where student.sno=sc.sno and student.sname=王位
)
6. 求选修4号课程的学生的年龄,姓名。
select sage,sname
from student ,sc
where sc.cno =4 and student.sno=sc.sno
select sage,sname
from student
where sno in(select sno
from sc
where sc.cno =4)
7. 求年龄大于所有女同学年龄的男学生的姓名和年龄
select sname,sage
from student
where sage all(select sage
from student
where ssex =女)
and ssex=男
4 带谓词ANY或ALL的嵌套查询
8. 查询非数学系的不超过数学系所有学生的年龄的学生姓名(Sname)和年龄(Sage)。
select sname ,sage
from student
where sage=all(select sage
from student
where sdept!=数学系 )
5 带谓词EXISTS的嵌套查询
9.查询所有选修了编号为“1”课程的学生姓名(Sname)和所在系(Sdept)。
select sname,sdept
from student
where exists (select *
from sc
where student.sno=sno and cno=1)
10.查询选修了所有课程的学生姓名(Sname)和所在系。
select sname ,sdept
from student
where not exists (select *
from course
whe
文档评论(0)