数据库视图和索引游标实验报告
- 格式:doc
- 大小:28.50 KB
- 文档页数:7
信息工程学院实验报告课程名称:《数据库原理》Array实验项目名称:视图和索引的创建和使用一、实验目的:(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”的姓名改为“刘晓晨”,能否实现?若无法实现说明原因。
计算机系一、实验目的1、掌握创建游标的方法和步骤;2.掌握游标的使用方法;二、实验内容1、游标的创建;2、游标的使用方法。
三、实验步骤1、游标的创建。
1)使用S_C数据库中的S表、C表、SC表创建一个存储过程—sp_CURSOR1。
该存储过程的作用是:显示所有的课程信息,如果成绩>=90显示成绩本身;成绩>=80显示良;成绩>=70显示中;成绩>=60显示及格;成绩>=0显示不及格;如果没有成绩则显示无成绩。
信息还包含学号,姓名,课程和成绩,显示格式如下:学号---姓名---课程---成绩,如图1所示。
要求使用游标技术实现上述要求,使用Print语句实现显示。
图1 成绩显示格式sp_CURSOR1的创建语句:create proc sp_CURSOR1asDeclare @sname varchar(50)Declare @sno varchar(20)Declare @cno varchar(20)Declare @cname varchar(20)Declare @grade varchar(20)Declare SCursor Cursor ForSelect sno,cno,grade From SCOpen SCursorFetch Next From SCursor Into @sno,@cno,@gradeWhile@@FETCH_STATUS= 0beginselect @sname=sname From S where sno=@snoselect @cname=cname From C where cno=@cnoif(@grade ='')Print @sno+@sname+@cname+'null'else if(@grade >= 90)Print @sno+@sname+@cname+@gradeelse if(@grade >=80)Print @sno+@sname+@cname+'良'else if(@grade >=70)Print @sno+@sname+@cname+'中'else if(@grade >=60)Print @sno+@sname+@cname+'及格'elsePrint @sno+@sname+@cname+'不及格'Fetch Next From SCursor Into @sno,@cno,@gradeEndClose SCursorDeallocate Scursorgo结果描述:2、游标的使用。
实验8:数据库索引和游标试验一、实验目的1 熟悉索引和游标的创建、修改、删除操作。
二、实验内容1在SQL Server Management Studio操作索引,包括创建、修改、删除操作。
三、实验步骤索引1在“对象资源管理器”中展开需要建立索引的表,选中“索引”服务选项并展开。
选中“索引”对象,单击鼠标右键,在快捷菜单中选择“新建索引”选项。
如图1所示:图1进入“新建索引”对话框,设置索引。
选择设置索引的列,索引类型等。
如图2所示:图22 设置完毕,再查询输出,观察输出结果。
3用两种方法完成下列任务:①根据loan表的branch_name列创建一个index_branchname的索引。
第一种方法建立索引:第二种方法建立索引:use bankingcreate unique nonclustered index index_branchname on loan (branch_name)②根据branch表的assets列创建一个名为index_assets的索引。
其中assets按降序。
查看branch表的assets 列显示的结果。
第一种方法建立索引:第二种方法建立索引:use bankingcreate unique nonclustered index index_assets on branch (assets desc)③创建索引视图。
a 创建一个包括贷款用户名、街道信息及贷款号的视图create view [dbo].[view_account]with schemabindingasSELECT account_number, balancefrom dbo.account将视图绑定到基础表的架构。
如果指定了SCHEMABINDING,则不能按照将影响视图定义的方式修改基表或表。
必须首先修改或删除视图定义本身,才能删除将要修改的表的依赖关系.这个视图由WITH SCHEMABINDING选项创建。
x x大学计算机与信息技术学院实验报告姓名学号专业班级课程名称数据库系统概论实验日期成绩指导教师批改日期实验名称游标的使用一、实验目的:•掌握游标的使用方法•掌握使用游标逐行操作SELECT语句结果集的数据的技能二、实验内容:•游标声明•打开游标•读取数据•关闭游标•释放游标三、实验步骤:(一)使用游标的几个步骤:1、声明游标。
使用T-SQL语句生成一个结果集,并且定义游标的特征,如游标中的记录是否可以修改;2、打开游标3、推进游标指针,从游标的结果集中提取数据,从游标中检索一行或多行数据成为提取数据。
4、逐行处理游标指针所指向的行数据。
5、关闭和释放游标。
例1、利用标准方式声明一个名称为“student”的游标use 学生选课declare student cursorforselect Sno,Sname,sageFROM studentWHERE sage=19FOR READ ONLYGOopen student // 打开gofetch next from student //从游标中读取数据goclose student // 关闭deallocate student // 删除例2:声明一个名称为Xuanke的游标use 学生选课/*声明一个名称为Xuanke的游标*/ DECLARE XUANKE CURSOR DYNAMIC /*动态的,动力的*/ FORSELECT Sno,GradeFROM SCWHERE Cno='1'FOR UPDATE OF SnoGO/*打开XUANKE游标*/OPEN XUANKEGO/*从XUANKE游标中读取数据*/ FETCH NEXT FROM XUANKEGO/*关闭XUANKE游标*/CLOSE XUANKE/*删除XUANKE游标*/ DEALLOCATE XUANKE例3:声明一个游标,可前后滚动,可对选课表2中的成绩进行修改use 学生选课/*声明一个游标,可前后滚动,可对选课表中的成绩进行修改use 学生选课*/DECLARE XK CURSORFOR SELECT*FROM SCFOR UPDATE OF Grade/*打开游标XK*/OPEN XKSELECT'游标数据行数'=@@CURSOR_ROWS/*全局变量@@CURSOR_ROWS返回最后打开的游标中当前存在的合格行的数量。
7-1编程在teaching 数据库中的student 表的sname 列上创建唯一索引IDX_sname。
USE teachingGOCREATE UNIQUE INDEX IDX_sname ON student(sname)7-2 编程在teaching数据库中的student表的studentno和classno列上创建组合索引IDX_sc。
USE teachingIF EXISTS(SELECT name FROM sysindexes WHERE name='IDX_sc')DROP INDEX student.scGOCREATE INDEX IDX_sc ON student(studentno,classno)7-3 重新组织teaching 数据库中student 表上的IDX_sc 索引。
USE teachingALTER INDEX IDX_sc ON dbo.student REORGANIZE7-4 重新生成teaching 数据库中student 表上的IDX_sname 索引,设置填充索引,将填充因子设置为80%,设置将中间排序结果存储在tempdb中。
USE teachingALTER INDEX IDX_sname ON dbo.studentREBUILD WITH(PAD_INDEX =ON,FILLFACTOR= 80,SORT_IN_TEMPDB =ON)7-5 重新生成teaching 数据库中student 表上的C_studentno 索引,将其修改为聚集唯一索引,并指定该索引的叶级页的填充度为70%。
USE teachingGOCREATE UNIQUE CLUSTERED INDEX C_studentnoON dbo.student(studentno)WITH(PAD_INDEX =ON,FILLFACTOR= 70,DROP_EXISTING =ON)7-6 删除teaching 数据库中student 表上的聚集索引C_studentno 和非聚集索引UC_classno。
一、实验名称
视图与索引
二实验目的
1.学会使用企业管理器建立视图与索引
2.掌握使用SQL语句建立视图与索引
三实验内容
1.使用企业管理器建立视图索引
2.使用SQL语句建立视图索引
四实验准备
1.复习与本次实验内容相关知识
2.对本次实验中要求自己完成的部分做好准备
五实验步骤
1.用企业管理器建立一个基于学生表、课程表、成绩表的视图,要求该视图
显示学号、姓名、课程、成绩
用查询分析器建立一个基于学生表、班级表的学生视图
自己写一个SQL语句建立一个基于课程表的视图(V_COURSES),要求显示
课程编号、课程名、学分。
查看索引
2.为学生表按班级建立一个非簇集索引FK_U_STUDENTS,操作过程如下
实验心得
总的来说,这次实验因为在上面的几次试验中取得的一些经验,在做实验的时候,也不觉得有多么大的困难了。
相反,感觉有点轻车熟路。
这次实验的目的是学会使用企业管理器建立视图与索引,掌握使用SQL语句建立视图与索引。
在做实验的时候遇到的问题是发现自己建立的视图遇到与表的内容不符的情况,这是由于我对上次表的内容有些模糊,而导致后面做实验出现问题。
在查询了以前建的表后,我又认真做了修改,使得在建立视图的时候能够与表建立紧密的联系,从而不会孤立表的建立。
到了后期,视图的建立也简单多了。
其实,在我做完这个实验之后,明白这次实验都主要是围绕SQL语句,对于语句的熟悉和掌握,有助于我们对数据的应用。
在以后的工作中,也能够发挥到学到知识的作用。
数据库系统原理实验报告实验名称:视图和游标操作的实验任课教师:霍纬刚学号:100341324姓名:汪何媛完成日期:2012.11.3实验名称:视图和游标操作的实验一、实验目的1、理解视图的作用,能够根据实际需求用SQL创建视图2、对基本表按需定义视图,并理解可以通过视图实现对基本表的操作3、通过QRACLE环境下的游标操作,理解SQL的游标概念;4、综合运用SQL的DML命令,通过游标操作数据库。
二、实验内容与步骤1、进入QRACLE的SQL*PLUS环境;2、用于Create view语句定义视图;(1)建立信息系学生的视图,然后向其中插入一计算机系学生数据,分别查看视图和基本表;(2)建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系学生,然后向其中插入一计算机系学生,比较(1),(2)的不同;(3)建立信息系选修了1号课程且成绩在90分以上的学生的视图;(4)将学生的学号及他的平均成绩定义为一个视图S_G;(5)将SC表中成绩在相应课程平均成绩之上的元组定义成一个视图GOOD-SC;3、通过视图对表进行操作(1)在信息系学生的视图中找出年龄小于20岁的学生;(2)查询信息系选修了1号课程且成绩在90分以上的学生;(3)在S_G视图中查询平均成绩在90分以上的学生学号和平均成绩;(4)创建CS-KC视图,包括计算机专业各学生的学号、其选修的课程号及成绩,要保证对该视图的修改都要符合专业名为“计算机”这个条件;(5)查找计算机专业的学生学号和选修的课程号;(6)向S-G视图中插入一元组。
4、游标的操作(1)用简单循环控制从EMP表中取出某一部门的员工姓名和工资,存入TEMP表中;(2)采用FOR循环重做上题;(3)游标的FOR循环内使用查询;(4)查询EMP表某部门的雇员情况,如果某雇员的工资小于800,掌握将其工资设为800;(5)为职工涨10%的工资。
从最低工资开始涨,最后工资总额限制在50万元以内;(6)根据DEPT表中返回的部门号,从EMP表中查询该部门的雇员情况,使用带参数的游标;(7)统计EMP表中工资大于3000的记录数,而且给工资增长10%。
华中科技大学《数据库技术与应用》实验报告专业班级:学生姓名:学号:实验地点:指导教师:实验日期时间:一、实验项目名称:索引和视图二、实验学时:三、实验目的: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表的课程编号列创建唯一性索引。
实验4 视图与索引一、实验目的1.本实验的目的是使学生掌握视图与索引的使用方法,加深对视图与索引作用的的理解。
2.通过自行设计视图与索引,加强学生的数据库设计能力。
二、实验内容1.索引的定义和维护1)建立唯一索引,测试插入、修改记录时所受的影响。
2)建立聚簇索引,比较建立前后的记录顺序变化。
3)建立多重索引,观察执行select语句查询的结果记录顺序。
4)删除相关索引。
2.视图的定义、查询和更新1)为学生选课系统从不同用户角度出发设计相应的视图。
2)利用视图进行相关查询。
3)利用视图进行更新,注意哪些视图是不可更新的。
三、实验原理1.建立索引语句CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);⏹用<表名>指定要建索引的基本表名字⏹索引可以建立在该表的一列或多列上,各列名之间用逗号分隔⏹用<次序>指定索引值的排列次序,升序:ASC,降序:DESC。
缺省值:ASC⏹UNIQUE表明此索引的每一个索引值只对应唯一的数据记录⏹CLUSTER表示要建立的索引是聚簇索引(CLUSTERED)HAVING短语:筛选出只有满足指定条件的组⏹ORDER BY子句:对查询结果表按指定列值的升序或降序排序2.建立视图语句CREATE VIEW <视图名> [(<列名> [,<列名>]…)]AS <子查询> [WITH CHECK OPTION]四、实验步骤按实验目的和内容自行设计。
五、实验报告要求1)写出本实验中用到的SQL语句的使用说明;2)对每一实验结果进行分析;3)记录在查询实验中遇到的典型问题及你所采取的解决方法;。