实验五 连接查询参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

--创建学生视图

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_stu]') and OBJECTPROPERTY(id, N'IsView') = 1)

drop view [dbo].[v_stu]

go

create view v_stu

as

select sid, sname, ssexy, sbdate, Datediff(year, sbdate, getdate()) as sage, stele,

ugrade.gid, gname, gyear,

udept.did, dname, daddr, dtele, demail,

uteacher.tid, tname, tsexy, tbdate, tfield, tprof, tele, qq, email, msn

from ustudent, ugrade, udept, uteacher

where ustudent.gid=ugrade.gid and ugrade.did=udept.did and ugrade.tid=uteacher.tid

--创建选修课程视图

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_sc]') and OBJECTPROPERTY(id, N'IsView') = 1)

drop view [dbo].[v_sc]

go

create view v_sc

as

select ustudent.sname, usc.*, cname, credit, pcid, chour, cattr, cnum

from ustudent, usc, ucourse

where ustudent.sid=usc.sid and usc.cid=ucourse.cid

--1、显示所有学生的详细信息,包括学号、姓名、性别、年龄、班级名称,入学年份select sid, sname, ssexy, sage, gname, gyear

from v_stu

--2、显示信息科学与技术系同学的名单,包括学号、姓名、性别、年龄、班级名称、入学年份

select sid, sname, ssexy, sage, gname, gyear

from v_stu

where dname='信息科学与技术系'

--3、显示选修了“数据库”的所有同学的学号、姓名

select sid, sname

from v_sc

where cname='数据库'

--4、显示白云同学的班主任老师的姓名、联系电话

select tname, tele

from v_stu

where sname='白云'

--5、显示白云同学所在院系的名称、办公地点与联系电话

select dname, daddr, dtele

from v_stu

where sname='白云'

--6、统计计算机科学与技术系每个同学已经修完的学分,显示学号、姓名、学分总数select v_stu.sid, v_stu.sname, sum(v_sc.credit)

from v_stu, v_sc

where v_stu.sid=v_sc.sid and v_stu.dname='计算机科学与技术系'

group by v_stu.sid, v_stu.sname

--7、显示李山同学已修课程及期末成绩

select sid, sname, cname, score2

from v_sc

where sname='李山'

--8、显示计算机科学与技术系、信息科学与技术系的班级名称、入学年份、班导名称与联系电话

select distinct gname, gyear, tname, tele

from v_stu

where dname in ('计算机科学与技术系', '信息科学与技术系')

--9、显示2006年入学的同学的学号、姓名、班级名称

select sid, sname, gname

from v_stu

where gyear='2006'

--10、显示已修数据库的同学的学号、姓名及期末成绩

select sid, sname, score2

from v_sc

where cname='数据库'

--11、显示平均成绩75分以上的课程名称与平均成绩

select cname, cast(avg(score2) as dec(5,2)) as '平均成绩'

from v_sc

group by cid, cname

having avg(score2)>75

--12、显示平均成绩80分以上同学的学号、姓名与平均成绩

select sid, sname, cast(avg(score2) as dec(5,2)) as '平均成绩'

from v_sc

group by sid, sname

having avg(score2)>80

--13、显示一周课时数为6节及以上的教师的姓名与研究领域select tname, tfield

from uteacher

where tid in (select tid

from ujobtable

group by tid

having sum(len(timeseg))>=6)

--14、按照班级统计期末平均成绩,显示班级名称与平均成绩select gname, cast(avg(score2) as dec(5,2)) as '平均成绩'

from v_stu, usc

where v_stu.sid=usc.sid

group by gid, gname

--15、按照学期统计计算机科学与技术系的期末平均成绩select term, cast(avg(score2) as dec(5,2)) as '平均成绩'

from v_stu, usc

where v_stu.sid=usc.sid and v_stu.dname='计算机科学与技术系' group by term

--16、统计每个院系一周的课时数,显示院系名称与课时数select dname, sum(len(timeseg))

from ujobtable, uteacher, udept

where ujobtable.tid=uteacher.tid and uteacher.did=udept.did

group by udept.dname

--17、显示没有选修任何课程的学生学号、姓名、班级名称select sid, sname, gname

from v_stu

where sid not in (select sid from usc)

--18、显示上过李飞老师的课的学生的学号、姓名与联系电话select sid, sname, stele

from ustudent

where gid in (select gid

from ujobtable, uteacher

where ujobtable.tid=uteacher.tid and uteacher.tname='李飞')

--19、显示一周6节课及以上的课程名称、学分

select cname, credit

from ucourse

相关文档
最新文档