SQL数据库系统实验报告(含代码、截图)(6)

2019-06-11 17:48

实验七 使用聚集函数的SELECT语句

一. 实验目的

1. 熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

2. 进一步掌握SQL Server 查询分析器的使用,加深对SQL语言的嵌套查询语句的理解。 二. 实验要求c

1.在实验之前做好准备。

2.完成实验,并验收实验结果提交实验报告。 三. 实验内容

在数据库EDUC中用SQL语句实现如下查询:

1)求学生的总人数。

2)求选修了课程的学生人数。

3)求课程的课程号和选修该课程的人数。 4)求选修课程超过2 门课的学生学号。

四. 实验步骤 1) 求学生的总人数.

select count(*) from student;

2) 求选修了课程的学生人数。

select count(distinct sno) from sc;

3)求课程的课程号和选修该课程的人数。

select cno,count(sno) from sc group by cno;

4)求选修课程超过2 门课的学生学号

select sno from sc group by sno having count(*)>2;

五、实验总结

通过本次实验,我了解了SELECT语句的GROUP BY和ORDER BY子句的作用。掌握了统计函数和

分组统计函数的使用方法。熟悉了查询分析器的运行环境。

实验八 视图的定义与使用

一. 实验目的

1. 熟悉和掌握对数据表中视图的查询操作和SQL命令的使用;

2. 熟悉和掌握对数据表中视图的更新操作和SQL命令的使用,并注意视图更新与基本表更

新的区别与联系;

3. 学习灵活熟练的进行视图的操作,认识视图的作用。 二.实验要求

1. 在实验开始之前做好准备工作。

2. 实验之后提交实验报告,思考视图和基本表的区别 三.实验内容 1.定义视图

在EDUC数据库中,已Student、Course 和SC表为基础完成一下视图定义:

1) 将Student, Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图

V_SC_G;

2) 定义一个反映学生出生年份的视图V_YEAR;

3) 将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G; 4) 将各门课程的选修人数及平均成绩定义为视图V_AVG_C_G; 5) 在原来的V_SC_G中增加一个属性列班级号 2.使用视图

1) 查询以上所建的视图结果。

2) 查询平均成绩为90分及以上的学生学号、姓名和成绩;

3) 查询科目成绩大于平均成绩的学生学号、课程号、成绩和平均成绩; 4) 查询1994年出生的学生学号和姓名。

5) 查询班级号为CS01选修了0001号课程的学生学号,姓名和成绩 四. 实验步骤 1.定义视图

1) 将Student, Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图

V_SC_G.

create view v_sc_g(sno,sname,cno,cname,grade) as

select sc.sno,sname,sc.cno,cname,grade from student,course,sc

where student.sno = sc.sno and sc.cno = course.cno;

2)定义一个反映学生出生年份的视图V_YEAR.

create view v_year(sname,year)

as

select sname,2013-sage from student;

3)将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G. create view v_avg_s_g(sno,cnono,avggrade)

as

select sno,count(cno),avg(grade) from sc group by sno;

4)将各门课程的选修人数及平均成绩定义为视图V_AVG_C_G。

create view v_avg_c_g(cno,cnono,avggrade) as

select sc.cno,count(sc.cno),avg(grade) from sc,course

where course.cno = sc.cno group by sc.cno;

5)在原来的V_SC_G中增加一个属性列班级号

2.使用视图

1)查询以上所建的视图结果。

2)查询平均成绩为90分及以上的学生学号、姓名和成绩;

select v_sc_g.sno,sname,grade from v_sc_g where sno in

(select v_avg_s_g.sno from v_avg_s_g

where v_sc_g.sno = v_avg_s_g.sno and v_avg_s_g.avggrade>90);

3)查询科目成绩大于其科目平均成绩的学生学号、课程号、成绩和平均成绩;

select sc.sno ,sc.cno,sc.grade,savggrade from v_avg_c_g,sc,v_avg_s_g

where sc.cno = v_avg_c_g.cno and sc.grade > v_avg_c_g.avggrade and sc.sno=v_avg_s_g.sno;

4)查询1994年出生的学生学号和姓名。 select sno,student.sname

from student,v_year

where student.sname = v_year.sname and year = '1994';

5)查询班级号为CS01选修了0001号课程的学生学号,姓名和成绩 select student.sno,v_sc_g.sname,v_sc_g.grade

from v_sc_g,student

where student.sno = v_sc_g.sno and v_sc_g.cno = '0001' and student.clsno = 'cs01';

五、实验总结

通过本次实验,我掌握了对数据表中视图的查询操作和SQL命令的使用;熟悉了对数据表中视图的更新操作和SQL命令的使用,体会到了视图的作用。


SQL数据库系统实验报告(含代码、截图)(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:教师职业道德修养

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

马上注册会员

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