数据库实验报告 索引和视图
- 格式:doc
- 大小:770.50 KB
- 文档页数:9
实验三视图和索引一、实验目的使学生掌握SQL SERVER中的视图创建、查看、修改和删除的方法;索引的创建和删除方法二、实验内容在学生-课程数据库中(1)用图形工具和T-SQL两种方法创建视图,取名为view_stu_grade,要求查看学生的学号,姓名,课程名和成绩。
(2)若发现视图定义的结构不能很好满足要求,还可以对它进行修改。
(3)删除视图(4)尝试分别为student表的每一个属性列添加一个惟一索引,将出现的现象和原因分析一下。
(5)删除索引三、实验过程要求个人填写(要求有文字描述和适当的图片辅助说明)注:图片需要上机运行SQL Server软件之后,可用QQ的抓图工具把运行窗口抓下来,粘贴在word文档中。
(1)①用图形工具创建视图:展开stud_course数据库,右键单击“视图”,在弹出的快捷菜单中有“新建视图”菜单项,单击“新建视图”,就会出现新建视图对话框,保存视图,给视图取名为view_stu_grade.②用T-SQL创建视图:查看结果:(2)若发现视图定义的结构不能很好满足要求,还可以对它进行修改。
如需要修改则点击视图选中view_stu_grade右键修改例如将视图修改为显示出计算机科学系男生的情况,并要求加密(3)删除视图①用图形工具删除视图②用T-SQL删除视图(4)①选中Student表打开索引,右键新建索引,如图操作②创建索引问题1(未选择要添加到索引键的表列)解决办法问题2(记录相同不能建立唯一索引)解决办法:不建立唯一结果(5)删除索引①图形工具删除索引单击鼠标右键要删除的索引,选择“删除”命令,然后弹出“删除对象”对话框,单击确定按钮,即可删除索引。
②用T-SQL语句删除索引四、实验总结要求个人填写(实验中发现的问题和解决的办法)本次实验练习了视图创建、查看、修改和删除的方法;索引的创建和删除方法。
通过这次实验我认识到视图的作用,能够简化用户的操作,视图使用户能以多钟角度看待同一数据,适当的利用视图可以更清晰的表达查询。
实验五视图与索引一.实验目的1.学会使用企业管理器建立视图与索引2.掌握使用SQL语句建立视图与索引二.实验内容1.使用企业管理器建立视图索引2.使用SQL语句建立视图索引三.实验准备1.复习与本次实验内容相关知识2.对本次实验中要求自己完成的部分做好准备四.实验步骤1.用企业管理器建立一个基于学生表、课程表、成绩表的视图,要求该视图显示学号、姓名、课程、成绩o启动企业管理器、注册、连接o"新建视如下图所示o在新视图窗口内的关系图窗格内右击鼠标,弹出的菜单即为视图设计菜单,执行"添加表(B)...",如下图所示再在添加表对话框中选择SCORES表,再单击添加按钮。
依此操作,分别添加STUDENT、COURSES表,单击关闭按钮。
再在关系窗格内,拖动STUDENT表的"SID"至SCORES的STUDENT_ID,拖动COURSES表的"CNO"至SCORES的COURSE_ID,再分别选中STUDENT表的"SID","NAME"列(列前的复选框),COURSES表的"COURSE"列以及SCORES表的"SCORE"列,然后单击"!"按钮,显示视图结果,如下图所示:单击保存按钮,将视图保存为V_SCORES,单击确定.2.用查询分析器建立一个基于学生表、班级表的学生视图(V_STUDENTS),包括学号、姓名、班级、系,SQL语句如下:CREATE VIEW dbo.V_STUDENTSASSELECT dbo.U_STUDENTS.ID, dbo.U_,dbo.U_CLASSES.CLASS,dbo.U_CLASSES.DEPARTMENTFROM dbo.U_STUDENTS INNER JOINdbo.U_CLASSES ON dbo.U_STUDENTS.CLASS_ID = dbo.U_CLASSES.ID3.自己写一个SQL语句建立一个基于课程表的视图(V_COURSES),要求显示课程编号.课程名、学分。
实验三索引和视图
一实验目的
1、掌握创建视图的T-SQL语句的用法
2、掌握使用SQL Server Management Studio 创建视图和索引的方
法
3、掌握查看视图和索引的系统存储过程的用法
4、掌握修改视图的方法
5、掌握创建索引的命令
二实验内容
1.建立计算机系学生视图,该视图包含学生的学号、姓名和出生日期信息并查看视图定义
2.建立学生表中全体学生年龄的视图,该视图包含学生的学号、姓名、和年龄信息
3.建立选修“数据库”的学生的视图,该视图包含学生的学号和姓名信息
4.建立学生成绩视图,该视图包含学生的学号、姓名、课程名称和成绩信息,并进行加密
5.修改题目4中的学生成绩视图,该视图包含学生的学号、姓名、课程名称、成绩和班级信息
6.在数据库中,为“课程”表创建一个基于“课程号,课程名称”组合列的非聚集、复合索引khh_kcmc_index
7.查看学生表的索引
8.建立学生表的姓名唯一性索引,并且填充因子为60%。
实验四视图和索引的使用
实验四视图和索引的使用
一、实验目的
1.掌握视图的创建、修改和删除
2.掌握通过视图修改表中的记录
3.掌握索引的创建、修改和删除
二、实验内容
根据实验二创建的表进行如下的操作:
1、对表S,创建一个专业为“计算机应用”的视图,视图名为STUDENT_SDEPT1。
2、对表S,创建一个专业为“计算机软件”的视图,视图名为STUDENT_SDEPT2。
3、建立一个视图名S_C_SC,视图里包括每个学生每一门课的成绩(学号、
姓名、课程名和成绩)。
4、删除视图STUDENT_SDEPT2。
5、通过视图STUDENT_SDEPT1,往S表中插入一条记录,内容为(“9901”,
“王套”,22“男”,“计算机应用”)。
6、对表S,按SNAME字段创建一个惟一非聚集索引,索引名为INDEX_SNO。
7、对表C,按CNAME创建一个惟一聚集索引,索引名COURSE_INDEXCNO。
8、对表S,按SEX和SNAME字段创建一个复合索引,索引名为INDEX_SEX_SNAME。
9、删除索引INDEX_SEX_SNAME、COURSE_INDEXCNO。
三、思考题:
1、视图与表的区别是什么?
2、视图的作用是什么?
3、索引的作用?
4、惟一索引的含义是什么?。
索引与视图学习报告一、学习目标:1、了解索引的概念和作用2、理解索引的创建的使用3、理解视图的基本概念和作用4、掌握视图的创建、查看及删除操作二、学习要求:1、了解索引和视图的含义,目的和作用,索引一经建立,就由系统使用和维护,无需用户干预。
2、通过看书和网上查阅资料,想同学多问多思考。
三、学习内容:1、索引:(1)索引定义:索引就是数据表中数据和相应的存储位置的列表,利用索引可以提高在表或视图中的查找数据的速度。
(2)数据库中索引主要分为两类:聚集索引和非聚集索引。
SQL Server 2005还提供了唯一索引、索引视图、全文索引、xml索引等等。
聚集索引和非聚集索引是数据库引擎中索引的基本类型,是理解其他类型索引的基础。
聚簇索引:聚集索引是值表中数据行的物理存储顺序和索引的存储顺序完全相同。
聚集索引根据索引顺序物理地重新排列了用户插入到表中的数据,因此,每个表只能创建一个聚集索引。
聚集索引经常创建在表中经常被搜索到的列或按顺序访问的列上。
在默认情况下,主键约束自动创建聚集索引。
非聚簇索引:非聚集索引不改变表中数据列的物理存储位置,数据与索引分开存储,通过索引指向的地址与表中的数据发生关系。
非聚集索引没有改变表中物理行的位置,索引可以在以下情况下使用非聚集索引:1、如果某个字段的数据唯一性比较高2、如果查询所得到的数据量比较少其他类型索引:除了以上索引,还有以下类型索引:A、唯一索引:如果希望索引键都不同,可以创建唯一索引。
聚集索引和非聚集索引都可以是唯一索引。
B、包含新列索引:索引列的最大数量是16个,索引列的字节总数的最高值是900。
如果当多个列的字节总数大于900,切又想在这些劣种都包含索引是,可以使用包含性列索引。
C、视图索引:提供视图查询效率,可以视图的索引物理化,也就是说将结果集永久存储在索引中,可以创建视图索引。
D、XML索引:是与xml数据关联的索引形式,是XML二进制blob的已拆分持久表示形式。
实验六索引与视图(实验报告)一、目的1.掌握索引和视图的基本概念和功能。
2.掌握利用SQL Server Management Studio和Transact-SQL语句创建、维护索引的方法。
3.掌握SQL Server Management Studio和Transact-SQL语句创建、修改视图的方法。
4.掌握通过视图查看和修改基本表中的数据。
二、实验内容(1)完成下列操作1.利用SQL Server Management Studio为student表的classno字段创建非聚集、非唯一索引UC_classno。
2.利用Transact-SQL语句在teaching数据库中teacher表的tname列上创建非聚集唯一索引UQ_tname。
若该索引已存在,则删除后重建。
3.利用SQL Server Management Studio查看索引被查询优化器使用的情况。
4.利用Transact-SQL语句修改UQ_tname的索引属性,当执行多行插入操作时出现重复键值,则忽略该记录,且设置填充因子为80%。
5.利用SQL Server Management Studio在teaching数据库中创建视图v_course_avg,查询没门课程的课程号、课程名及选修该课程的学生的期末平均成绩平均分,并且按平均分降序排列。
6.利用Transact-SQL语句,在teaching数据库中创建视图v_age,查询年龄在18岁及以上的学生的学号、姓名、性别、出生日期和班级编号。
若该视图已存在,则删除后重建。
7.利用Transact-SQL语句,在teaching数据库中创建视图v_teacher_course,包含教师编号、教师姓名、职称、课程号、课程名和任课班级。
8.利用Transact-SQL语句修改v_age的视图定义,添加WITH CHECK OPTION选项。
9.通过视图v_teacher_course将教师编号为‘t05017’的教师的职称更改为‘副教授’。
华中科技大学《数据库技术与应用》实验报告专业班级:学生姓名:学号:实验地点:指导教师:实验日期时间:一、实验项目名称:索引和视图二、实验学时:三、实验目的:1.学会使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引。
2.学会使用SQL Server管理平台查看索引。
3.学会使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引。
4.掌握使用SQL Server管理平台和Transact-SQL语句CREATE-VIEW创建视图的用法。
5.了解对索引和视图更名的系统存储过程sp_rename的用法。
6.掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。
7.了解删除视图的Transact-SQL语句DROP VIEW的用法。
四、实验工具或环境五、实验内容、步骤、代码和结果:0. 创建studentsdb数据库及其相应表,并录入数据。
在SQL Server管理平台上,点击“新建查询”打开查询编辑器窗口,复制粘贴附件“创建数据库代码”中的代码到查询编辑器窗口,运行即可生成相关数据库和表,并有相应的数据。
1.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。
alter table student_info alter column学号char(4)not null;alter table student_infoadd primary key(学号)alter tablecurriculum alter column课程编号char(4)not null;alter table curriculumadd primary key(课程编号)2.使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。
实验三:索引、视图1 实验目的1.通过实验进一步理解视图的建立和更新2 实验工具SQL Server 2000利用SQL Server 2000及其交互式查询语言对数据库中的表进行熟练操作。
3 实验内容和要求实验要求建立视图,视图查询,视图更新;实验方法①将实验需求用SQL语句表示;②执行SQL语句;③查看执行结果,如果结果不正确,进行修改,直到正确为止。
实验内容1:(建立视图) 建立计算机系的学生的视图STUDENT_CS。
2:(建立视图) 建立由学号和平均成绩两个字段的视图STUDENT_GR。
3:(视图查询) 利用视图STUDENT_CS,求年龄大于19岁的学生的全部信息。
4:(视图查询) 利用视图STUDENT_GR,求平均成绩为88分以上的学生的学号和平均成绩。
5:(视图更新) 利用视图STUDENT_CS,增加学生('98004','李华','CS','02',20,'女')6:(视图更新) 利用视图STUDENT_CS,将学生年龄增加1岁。
观察其运行结果并分析原因。
7:(视图更新) 利用视图STUDENT_GR,将平均成绩增加2分。
观察其运行结果并分析原因。
8:(视图更新) 删除视图STUDENT_CS中学号为‘96002’的学生的全部数据。
9:(视图更新) 删除视图STUDENT_GR的全部数据。
10:(删除视图) 删除视图STUDENT_CS和STUDENT_GR。
11:(索引建立)为Score表按学号升序和课程号降序分别建立索引,索引名分别为SC_NDXSNO和SC_NDXCNO。
为Score表按分数降序建立索引,索引名为GRADE_NDX12:删除索引SC_NDXSNO4 实验总结①SQL语句以及执行结果;②对重点实验结果进行分析;③实验中的问题和提高;④收获与体会。
西北师范大学计算机科学与工程学院学生实验报告
2、在student表的studentno和classno列上创建唯一索引UQ-stu,若该索引已存在,则删除后重建。
然后输出student表中的记录,查看输出结果的顺序。
SQL代码:
USE teaching
GO
IF EXISTS(SELECT name FROM sysindexes WHERE name='UQ_stu')
DROP INDEX student.UQ_stu
GO
CREATE NONCLUSTERED INDEX UQ_stu ON student(studentno,classno)
GO
SELECT*
FROM student
实验结果:
3、修改UQ-stu的索引属性,当执行多行插入操作时出现重复键值,则忽略该记录,且设置填充因子为80%
SQL代码:
USE
teaching
GO
ALTER INDEX UQ_stu ON student REBUILD
WITH(PAD_INDEX=ON,FILEFACTOR=80,IGNORE-DUP_KEY=ON)
GO
实验结果:
4、创建一个视图v-teacher,查询“计算机学院”所有教师的信息SQL代码:
USE teaching
GO
CREATE VIEW v_teacher
AS
SELECT*
FROM teacher
WHERE department='计算机学院'
GO
SELECT*
FROM v_teacher
实验结果:
5、创建一个视图v-avgstu,查询每个学生的学号、姓名及平均分,并且按照平均分降序排序
SQL代码:
USE teaching
GO
CREATE VIEW v_avgstu
AS
SELECT TOP(100)PERCENT student.studentno,studnt.sname,AVG(score.final)AS 'average'
FROM student,score
WHERE student.studentno=score.studentno
AND score.final IS NOT NULL
GROUP BY student.studentno,student.sname
ORDER BY AVG(score.final)DESC
GO
SELECT*
FROM v_avgstu
实验结果:
6、修改v-avgstu的视图定义,添加WITH CHECK OPTION选项SQL代码:
USE teaching
GO
ALTER VIEW v_avgstu
AS
SELECT*
FROM teacher
WHERE department='计算机学院'
WITH CHECK OPTION
GO
实验结果:
7、通过视图v-avgstu向基表teacher中分别插入数据(‘05039’,‘张馨月’,‘计算机应用’,‘讲师’,‘计算机学院’)和(‘06018’,‘李诚’,‘机械制造’,‘副教授’,‘机械学院’),并查看插入数据的情况
SQL代码:
USE teaching
GO
INSERT INTO v_teacher
VALUES('05039','张馨月','计算机应用','讲师','计算机学院')
INSERT INTO v_teacher
VALUES('06018','李诚','机械制造','副教授','机械学院')
SELECT*
FROM v_teacher
SELECT*
FROM teacher
实验结果:
8、通过视图v-teacher将基表teacher中教师编号为05039的教师职称修改为“副教授”
SQL代码:
USE teaching
GO
UPDATE v_teacher
SET prof='副教授'
WHERE teacherno='05039'
GO
SELECT*
FROM teacher
实验结果:
实验总结:
通过本次实验掌握了索引、统计信息和视图等数据库对象的基本概念和基本操作。
实验评语:
实验成绩教师签字。