视图和索引的创建和使用实验报告
更新时间:2023-12-05 01:24:01 阅读量: 教育文库 文档下载
信息工程学院实验报告
课程名称:《数据库原理》 实验项目名称:视图和索引的创建和使用
成 绩: 指导老师 ( 签名 ) : 一、实 验 目 的:
(1)掌握创建视图的SQL语句的用法。 (2)掌握修改视图的方法。
(3)熟悉视图更新与基本表更新的区别与联系;认识视图的作用。 (4)熟悉索引的作用,以及不同类型索引的区别。 (5)学会用T-SQL语句对表创建和删除索引
二、实 验 设 备 与 器 件 Win7 +Sql server 2008 三、实 验 内 容 与 步 骤
利用备份文件school,还原数据库,然后完成以下实验内容: (1)用T-SQL语句,定义信息系学生基本情况视图V_IS。
(2)用T-SQL语句,将Student,Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为
视图V_S_C_G。
(3)用T-SQL语句,将各系学生人数,平均年龄定义为视图V_NUM_AVG。 (4)用T-SQL语句,定义一个反映学生出生年份的视图V_YEAR。
(5)用T-SQL语句,将各位学生学号、选修课程的门数及平均成绩定义为视图V_AVG_S_G。 (6)用T-SQL语句,将各门课程的课程号、选修人数及平均成绩定义为视图V_AVG_C_G。 (7)用T-SQL语句完成以下视图操作,查看结果,并分析原因。
①通过视图V_IS,将学号为“200215125”的学生姓名更改为“张小立”,并查看结果; ②通过视图V_IS,新增加一个学生记录 ('200215126','黄笑',19, '男','IS'),并查看结果。 ③通过视图V_IS,新增加一个学生记录 ('200215127','李霞',19, '女','MA'),并查看结果。 ④通过视图V_IS,删除学号为“200215126”的学生信息,并查看结果。
⑤通过视图V_S_C_G,将学号“200215122”的姓名改为“刘晓晨”,能否实现?若无法实现说明原因。 ⑥通过视图V_AVG_S_G,将学号“200215121”的平均成绩改为90,能否实现?若无法实现说明原因。 ⑦修改视图V_IS定义,添加WITH CHECK OPTION语句,然后用update语句修改“200215125”的学生所在系,改为’MA’, 能否实现?若无法实现说明原因。 ⑧修改视图V_YEAR,对其进行加密处理,并查看结果。
(8)写出T-SQL语句:利用表和前面所建视图,查询平均成绩为90分以上的学生学号、姓名和成绩; (9)写出T-SQL语句:利用表和前面所建视图,查询成绩大于课程平均成绩的学生学号、课程号和成绩; (10)写出T-SQL语句:利用表和前面所建视图,按系分组统计平均成绩80分以上的人数,按降序排列。 (11)为student表创建一个复合索引i_sdept_sno,以院系升序、学号降序。 (12)在student表的sname列上建立普通降序索引。 (13)在course表的cname列上建立唯一索引。
(14)将sc表的原先在sno,cno列上的聚集索引,改为在sno列上建立。 (15)用系统过程sp_helpindex查看表student中的索引信息。 (16)用系统过程sp_rename,将索引i_sdept_sno的名称改为i_s。
(17)删除索引i_s。
四、实 验 总 结:
(1)用T-SQL语句,定义信息系学生基本情况视图V_IS。
CREATE VIEW V_IS AS
SELECT* FROM student WHERE sdept='IS'
视图V_S_C_G。
(2)用T-SQL语句,将Student,Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为
CREATE VIEW V_S_C_G AS
SELECT STUDENT.SNO,SNAME,COURSE.CNO,CNAME,SC.GRADE FROM Student,Course,SC
WHERE student.SNO=SC.sno AND SC.CNO=COURSE.CNO
(3)用T-SQL语句,将各系学生人数,平均年龄定义为视图V_NUM_AVG。
CREATE VIEW V_NUM_AVG AS
SELECT COUNT(SNO)DEPTNUM,AVG(SAGE)AGE,SDEPT FROM Student GROUP BY SDEPT
(4)用T-SQL语句,定义一个反映学生出生年份的视图V_YEAR。
CREATE VIEW V_YEAR AS
SELECT SNAME,2014-SAGE ‘出生年份’ FROM Student
(5)用T-SQL语句,将各位学生学号、选修课程的门数及平均成绩定义为视图V_AVG_S_G。
CREATE VIEW V_AVG_S_G AS
SELECT STUDENT.SNO '学号',SNAME '姓名',COUNT(*) '选修门数',AVG(GRADE) '平均成绩' FROM student,course,SC
WHERE Student.SNO=SC.SNO AND SC.CNO=COURSE.CNO GROUP BY STUDENT.SNO,SNAME
(6)用T-SQL语句,将各门课程的课程号、选修人数及平均成绩定义为视图V_AVG_C_G。
CREATE VIEW V_AVG_C_G AS
SELECT SC.CNO'课程号',AVG(GRADE)'平均成绩',COUNT(CNO)'选修人数' FROM SC
GROUP BY CNO
(7)用T-SQL语句完成以下视图操作,查看结果,并分析原因。
①通过视图V_IS,将学号为“200215125”的学生姓名更改为“张小立”,并查看结果; UPDATE V_IS
SET SNAME=’张小立’ WHERE SNO=200215125
视图结果:
Student 表
结果显示在视图操作,会影响到建立视图时用的STUDENT 这张表格。
②通过视图V_IS,新增加一个学生记录 ('200215126','黄笑',19, '男','IS'),并查看结果。 INSERT INTO V_IS(SNO,SNAME,SSEX,SAGE,SDEPT) VALUES(‘200215126’,’黄笑’,’男’,19,’IS’) SELECT* FROM V_IS
WHERE SNO=’200215126’
③通过视图V_IS,新增加一个学生记录 ('200215127','李霞',19, '女','MA'),并查看结果。 INSERT INTO V_IS(SNO,SNAME,SSEX,SAGE,SDEPT) VALUES(‘200215127’,’李霞’,’女’,19,’MA’) SELECT* FROM V_IS
WHERE SNO=’200215127’
但是视图没有此条数据
④通过视图V_IS,删除学号为“200215126”的学生信息,并查看结果。 DELETE FROM V_IS
WHERE SNO=’200215126’
⑤通过视图V_S_C_G,将学号“200215122”的姓名改为“刘晓晨”,能否实现?若无法实现说明原因。 UPDATE V_S_C_G SET SNAME=’刘晓晨’ WHERE SNO=’200215122’
可实现此次操作
⑥通过视图V_AVG_S_G,将学号“200215121”的平均成绩改为90,能否实现?若无法实现说明原因。
UPDATE V_AVG_S_G SET [平均成绩]='90'
WHERE [学号]='200215121'
不能实现,原因是系统无法修改各科成绩,以使平均成绩为90,所以V_AVG_S_G视图时不可更新的。
⑦修改视图V_IS定义,添加WITH CHECK OPTION语句,然后用update语句修改“200215125”的学生所在系,改为’MA’, 能否实现?若无法实现说明原因。 ALTER VIEW V_IS AS
SELECT * FROM STUDENT WHERE SDEPT=’IS’ WITH CHECK OPTION UPDATE V_IS SET SDEPT=’MA’ WHERE SNO=’200215125’
无法实现此操作,原因是目标视图所跨越的某一视图指定了WITH CHECK OPTION,而该操作的一个或多个结果又不符合WITH CHECK OPTION约束的条件。
⑧修改视图V_YEAR,对其进行加密处理,并查看结果。 ALTER VIEW V_YEAR WITH ENCRYPTION AS
SELECT SNAME,2014-SAGE ‘出生年份’ FROM STUDENT
(8)写出T-SQL语句:利用表和前面所建视图,查询平均成绩为90分以上的学生学号、姓名和成绩;
SELECT V_AVG_S_G.学号,student.sname,V_AVG_S_G.平均成绩 from student,V_AVG_S_G
where student.sno=V_AVG_S_G.学号 and V_AVG_S_G.平均成绩>90
(9)写出T-SQL语句:利用表和前面所建视图,查询成绩大于课程平均成绩的学生学号、课程号和成绩;
select sc.sno 学号,sc.cno 课程号,sc.grade 成绩 from sc,V_AVG_C_G
where sc.cno=V_AVG_C_G.课程号 and sc.grade>V_AVG_C_G.平均成绩
心得体会:对语句不熟悉,有的操作花了很多时间,所以之做到这步,争取下次老师布置的实验按时完成。
(9)写出T-SQL语句:利用表和前面所建视图,查询成绩大于课程平均成绩的学生学号、课程号和成绩;
select sc.sno 学号,sc.cno 课程号,sc.grade 成绩 from sc,V_AVG_C_G
where sc.cno=V_AVG_C_G.课程号 and sc.grade>V_AVG_C_G.平均成绩
心得体会:对语句不熟悉,有的操作花了很多时间,所以之做到这步,争取下次老师布置的实验按时完成。
正在阅读:
视图和索引的创建和使用实验报告12-05
仪表工理论试题06-23
卫生健康委员会关于疫情防控工作总结报告08-05
155.给排水安装作业 - 图文11-23
爱在那里作文600字06-26
新概念第一册11-12教案06-05
湖州市建筑工程公司名录2018版299家 - 图文11-30
(《ibc规则》)的修正案 第11章06-12
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 视图
- 索引
- 创建
- 实验
- 报告
- 使用
- 《关于建设工程交易服务费收费标准问题的复函》深价管函81号
- 向心力
- 第三节 地球公转的地理意义(三) - 正午太阳高度角的应用
- 北京大学研究生入学考试试题物理化学(9)
- 鲁教版六年级上期末英语试题
- 艾沙克·吾买尔 新师大实习支教周记
- 2018年最新6月党员思想汇报范文:做好先锋模范作用
- 闸北区初三英语第一学期期末质量抽查试卷 - 图文
- 高考易错题集锦6.专题六 热学、分子热运动及能量守恒
- 齿轮传动习题(含答案)
- 停复工安全技术措施
- 人教版八年级下册语文第二单元测试题含答案
- 《审计学原理》综合练习题 1
- ANSYS中的APDL命令
- 一季报业绩数据 - 图文
- 加拉太书系列讲章
- 湘教版思想品德八年级下册第三单元第三节 传承民族精神同步练习
- 成本会计配套练习题1
- 南航基坑内支撑换撑及拆除
- 金融学课程论文考核要求