数据库第四次实验报告视图tsql语句

上传人:ali****an 文档编号:118767155 上传时间:2019-12-25 格式:DOCX 页数:23 大小:751.03KB
返回 下载 相关 举报
数据库第四次实验报告视图tsql语句_第1页
第1页 / 共23页
数据库第四次实验报告视图tsql语句_第2页
第2页 / 共23页
数据库第四次实验报告视图tsql语句_第3页
第3页 / 共23页
数据库第四次实验报告视图tsql语句_第4页
第4页 / 共23页
数据库第四次实验报告视图tsql语句_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《数据库第四次实验报告视图tsql语句》由会员分享,可在线阅读,更多相关《数据库第四次实验报告视图tsql语句(23页珍藏版)》请在金锄头文库上搜索。

1、实验十报告 创建视图 兰州大学数据库实验报告实验目的1掌握创建视图的SQL语句的用法。2掌握使用企业管管理器创建视图的方法。3掌握使用创建视图向导创建视图的方法。4掌握查看视图的系统存储过程的用法。5掌握修改视图的方法。一 实验准备1了解创建视图方法。2了解修改视图的SQL语句的语法格式。3了解视图更名的系统存储过程的用法。4了解删除视图的SQL语句的用法。二 实验要求1. 用不同的方法创建视图。2. 提交实验报告,并验收实验结果。三 实验内容1. 创建视图(1) 使用企业管理器创建视图 在EDUC库中以“student”表为基础,建立一个名为“V_计算机系学生”的视图。在使用该视图时,将显示

2、“student”表中的所有字段. 视图如下:(2) 使用SQL语句创建视图 在查询分析器中建立一个每个学生的学号、姓名、选修的课名及成绩的视图S_C_GRADE;Create VIEW S_C_GRADEAS SELECT student.sno,sname,cname,scoreFROM student,course,student_courseWHERE student.sno=student_course.sno AND o=student_o;视图如下: 建立一个所有计算机系学生的学号、选修课程号以及平均成绩的视图COMPUTE_AVG_GRADE;Create VIEW COMPU

3、TE_AVG_GRADEAS SELECT student.sno,o,AVG(score) 平均成绩FROM student,course,student_courseWHERE student.sno=student_course.sno AND o=student_o AND student.dno=CSGROUP BY student.sno,o;视图如下:2. 修改视图 (1) 使用企业管理器修改视图在企业管理器中将视图COMPUTE_AVG_GRADE中改成建立在数学系的学生学号、选修课程号以及平均成绩的视图。(IS设为数学系)(2) 使用SQL语句修改视图 在查询分析器中使用更改

4、视图的命令将上面建立的视图“V_计算机系学生”更名为“V_计算机系男生”。SP_RENAME V_计算机系学生,V_计算机系男生;3. 删除视图(1) 使用企业管理器删除视图 用企业管理器删除视图“V_计算机系学生”(2) 使用SQL语句删除视图用SQL语句删除视图COMPUTE_AVG_GRADE;DROP VIEW COMPUTE_AVG_GRADE;实验十一 使用视图一 实验目的1. 熟悉和掌握对数据表中视图的查询操作和SQL命令的使用;2. 熟悉和掌握对数据表中视图的更新操作和SQL命令的使用,并注意视图更新与基本表更新的区别与联系3. 学习灵活熟练的进行视图的操作,认识视图的作用二

5、实验准备1熟悉SQL SERVER 工作环境。2能连接到EDUC数据库。3复习有关视图操作的SQL语言命令。三 实验要求1. 在实验开始之前做好准备工作。2. 实验之后提交实验报告,思考视图和基本表的区别四 实验内容一 定义视图在EDUC数据库中,已Student Course 和Student_course 表为基础完成一下视图定义 定义计算机系学生基本情况视图V_Computer;CREATE VIEW V_ComputerASSELECT student.*FROM studentWHERE student.dno=CS;视图如下: 将Student Course 和Student_co

6、urse表中学生的学号,姓名,课程号,课程名,成 绩定义为视图V_S_C_GCREATE VIEW V_S_C_GASSELECT student.sno,sname,o,ame,scoreFROM student,course,student_courseWHERE student.sno=student_course.sno AND o=student_o;视图如下: 将各系学生人数,平均年龄定义为视图V_NUM_AVGCREATE VIEW V_NUM_AVGASSELECT COUNT(dno) 各系人数,AVG(sage) 平均年龄FROM studentGROUP BY dno;视

7、图如下: 定义一个反映学生出生年份的视图V_YEARCREATE VIEW V_YEARASSELECT sname,2014-sage 出生年份FROM student;视图如下: 将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_GCREATE VIEW V_AVG_S_GASSELECT student.sno 学号,sname 姓名,COUNT(*) 选修门数,AVG(score) 平均成绩FROM student,student_courseWHERE student.sno=student_course.snoGROUP BY student.sno,sname;视图如下

8、: 将各门课程的选修人数及平均成绩定义为视图V_AVG_C_GCREATE VIEW V_AVG_C_GASSELECT cno 课程号,COUNT(cno) 选修人数,AVG(score) 平均成绩FROM student_courseGROUP BY cno;视图如下:二 使用视图1. 查询以上所建的视图结果。所建视图结果如上题截图所示2. 查询平均成绩为90分以上的学生学号、姓名和成绩;SELECT 学号,姓名,平均成绩FROM V_AVG_S_GWHERE 平均成绩90;3. 查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩;SELECT V_S_C_G.sno,V_S_C_G.

9、sname,V_S_C_G.cname,V_S_C_G.scoreFROM V_S_C_G,V_AVG_S_GWHERE V_S_C_G.sno=V_AVG_S_G.学号 AND V_S_C_G.scoreV_AVG_S_G.平均成绩;4. 按系统计各系平均成绩在80分以上的人数,结果按降序排列;1先创建学生学号-系别视图V_STUDENTCREATE VIEW V_STUDENTASSELECT sno,dnoFROM student; 2进行查询SELECT V_STUDENT.dno 系别,COUNT(V_STUDENT.sno) 人数FROM V_STUDENT,V_AVG_S_GWH

10、ERE V_STUDENT.sno=V_AVG_S_G.学号 AND V_AVG_S_G.平均成绩80GROUP BY V_STUDENT.dno;三 修改视图1. 通过视图V_IS,分别将学号为“S1”和“S4”的学生姓名更改为“S1_MMM”,”S4_MMM” 并查询结果;UPDATE V_IS SET sname=S1_MMM WHERE SNO=32011;UPDATE V_IS SET sname=S4_MMM WHERE SNO=32014;SELECT *FROM V_ISWHERE sno=32011 OR sno=32014;2. 通过视图V_IS,新增加一个学生记录 (S1

11、2,YAN XI,19,IS),并查询结果INSERT INTO V_IS(sno,sname,sex,dno,sage)VALUES(S12,YAN XI,女,IS,19)SELECT * FROM V_IS WHERE sno=S12;3. 要通过视图V_AVG_S_G,将学号为“S1”的平均成绩改为90分,是否可以实现?并说明原因答:不能实现,因为视图或函数V_AVG_S_G 包含聚合、DISTINCT 或GROUP BY 子句或者PIVOT 或UNPIVOT 运算符,所以无法进行更新。UPDATE V_AVG_S_G SET 学号=32011 WHERE 平均成绩=90;实验十二 更新

12、语句一 实验目的1 熟悉使用UPDATE/INSERT/DELETE语句进行表操作;2 能将这些更新操作应用于实际操作中去;二 实验准备1了解这些更新语句的基本语法和用法;三 实验要求1 完成下面的实验内容,并提交实验报告;2 在实验报告中附上相应的代码;四 实验内容1 对于student表,将所有专业号为001的,并且入学年份为2006的学生,或是专业号为003,并且年龄小于20岁的学生的班级号改为001。UPDATE student SET classno=001 WHERE (mno=001AND YEAR(sctime)=2006)OR(mno=003AND (year(getdate

13、()-year(sdate)20);2 对于student表,删掉所有年龄小于20岁,并且专业号为003的学生的记录。DELETE FROM studentWHERE mno=003AND (year(getdate()-year(sdate)=ALL(select sctime FROM student) OR year(sdate)=ALL(select year(sdate) from student)5 对于student表,将平均年龄最小的一个院系的院系编号改为008。UPDATE student SET dno=008 where dno in( SELECT top 1 dno FROM student

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号