实验四 索引和视图参考答案
上机实验4 视图和索引操作2008

上机实验4 视图和索引操作5.1 实验目的1、练习并掌握使用对象资源管理器创建和管理视图;2、练习并掌握使用Transact_SQL 语言创建和管理视图;3、练习通过视图操作表中数据,并能理解它的含义;4、通过在对象资源管理器创建和管理索引,掌握创建和管理索引的多种方法;5、通过练习使用Transact_SQL 语言创建和管理索引,理解语句意思,掌握其用法;6、了解查看索引信息的方法。
5.2 实验练习预备知识点5.2.1 视图的概念视图是一种数据库对象,是虚拟表。
它是从基本表或者视图中导出的表, 用来存储用户想到看的数据。
视图是用户查看数据库的一种方式。
视图与数据表之间的区别:视图是引用存储在数据库中的查询语句时动态创建的,它本身并不存储数据,真正的数据依然存储在数据表中。
5.2.2 在对象资源管理器中创建视图1、打开对象资源管理器,在左边的目录树中选择要创建数据库文件夹,选中“视图”对像。
点击右键选择“新建视图”,打开“视图”设计窗口。
如图5-1所示5-1 视图设计窗口2、将用来创建视图的表添加到视图设计窗口,如图5 -2 所示。
如果创建的视图覆盖多张数据表,那么这些数据表必须是存在联系的。
3、从数据源中选择将在视图中显示的字段,同时出现在第二部分的列表中。
在该列表中可设置限制视图中显示数据的条件,排序字段和排序顺序,以及该字段是否显示。
4、在第三部分的空白处会自动显示出创建该视图所用到的SELECT 语句。
可做修改。
5、在第四部分的列表中,可以预览视图建成后打开的内容。
6、保存视图,取名。
图5-2 填写好的视图设计窗口7、最后,打开视图的方法和打开表的方法是一样的。
8、也可以使用向导创建视图(步骤略)5.2.3 在查询分析器中用T-SQL语句创建视图CREATE VIEW 语句结构如下:CREATE VIEW view_name[(column[,…n])][with ENCRYPTION]ASselect_statement[WITH CHECK OPTION]参数说明:view_name:视图名称column[,…n]:视图中的字段名,可省略。
南昌大学计算机数据库实验四_索引和视图

南昌大学计算机数据库实验四_索引和视图实验四索引和视图学号:6100410235 姓名:郑俊班级:计科103班实验日期:2012-11-15一实验目的1、掌握创建视图的T-SQL语句的用法2、掌握使用SQL Server Management Studio 创建视图和索引的方法3、掌握查看视图和索引的系统存储过程的用法4、掌握修改视图的方法5、掌握创建索引的命令二实验内容1.建立计算机系学生视图,该视图包含学生的学号、姓名和出生日期信息并查看视图定义use[学生情况]gocreate view CS_Studentasselect学号,姓名,出生日期from学生where系别='计算机'2.建立学生表中全体学生年龄的视图,该视图包含学生的学号、姓名、和年龄信息use[学生情况]gocreate view Sage_Studentasselect学号,姓名,2012-year(出生日期)年龄from学生3建立选修“数据库”的学生的视图,该视图包含学生的学号和姓名信息use[学生情况]gocreate view数据库_Studentasselect学生.学号,姓名from学生,课程注册,学期成绩where学生.学号=学期成绩.学号and课程注册.课程编号=学期成绩.课程编号and课程名称='数据库'4.建立学生成绩视图,该视图包含学生的学号、姓名、课程名称和成绩信息,并进行加密use[学生情况]gocreate view学生成绩with encryptionasselect学生.学号,姓名,课程注册.课程名称,学期成绩.成绩from学生,课程注册,学期成绩where学生.学号=学期成绩.学号and课程注册.课程编号=学期成绩.课程编号5.修改题目4中的学生成绩视图,该视图包含学生的学号、姓名、课程名称、成绩和班级信息use[学生情况]goalter view学生成绩(学号,姓名,课程名称,成绩,班别)with encryptionasselect学生.学号,姓名,课程注册.课程名称,学期成绩.成绩,学生.班别from学生,课程注册,学期成绩where学生.学号=学期成绩.学号and课程注册.课程编号=学期成绩.课程编号6.在数据库中,为“课程”表创建一个基于“课程号,课程名称”组合列的非聚集、复合索引khh_kcmc_indexuse[学生情况]gocreate unique index khh_kcmc_index on课程注册(课程编号,课程名称)7.查看学生表的索引8.建立学生表的姓名唯一性索引,并且填充因子为60%use[学生情况]gocreate unique index khh_kcmc_index on学生(姓名)with fillfactor=603.实验思考(1)是否可以通过视图v_stu_g修改grade表中学号列数据?答:不能(2)比较视图和基表操作表中数据的异同。
实验四视图和索引的使用

实验四视图和索引的使用
实验四视图和索引的使用
一、实验目的
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、惟一索引的含义是什么?。
实验训练4:视图和索引的构建与使用

实验训练4:视图和索引的构建与使用1. 简介在数据库中,视图是一种虚拟表,它是基于查询结果动态生成的。
视图可以看作是一个预定义的查询,通过视图可以方便地访问和组织数据。
本文将介绍在数据库中如何创建和使用视图,以及如何构建索引来提高查询性能。
2. 创建视图在数据库中,可以使用CREATE VIEW语句来创建一个视图。
视图的创建需要满足以下条件:•视图的名字必须唯一。
•视图的定义必须是一个有效的SELECT语句。
下面是一个创建视图的示例:CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition;其中,view_name是视图的名称,column1和column2是视图所包含的列名,table_name是数据来自的表名,condition是过滤条件。
创建视图之后,可以使用SELECT语句来查询视图的内容,就像查询表一样。
3. 修改视图在数据库中,可以使用ALTER VIEW语句来修改一个已经存在的视图。
修改视图可以包括添加、删除和修改列。
下面是一个修改视图的示例:ALTER VIEW view_name ADD column_name datatype;其中,view_name是要修改的视图的名称,column_name 是要添加的列名,datatype是列的数据类型。
4. 删除视图在数据库中,可以使用DROP VIEW语句来删除一个已经存在的视图。
下面是一个删除视图的示例:DROP VIEW view_name;其中,view_name是要删除的视图的名称。
5. 索引的构建与使用索引是一种数据结构,可以提高数据库的查询性能。
数据库中的索引可以分为以下几种类型:•B-Tree索引:适用于等值查询和范围查询。
•哈希索引:适用于等值查询。
•全文索引:适用于关键词搜索。
在数据库中,可以使用CREATE INDEX语句来创建索引。
索引和视图实验答案

《索引和视图》实验一、实验目的与要求1.学会使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引。
2.学会使用SQL Server管理平台查看索引。
3.学会使用SQL Server管理平台和Transact-SQL语句DROP INDEX 删除索引。
4.掌握使用SQL Server管理平台、向导等创建、管理和删除全文索引,并使用全文索引查询信息的方法。
5. 掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。
6.掌握系统存储过程sp_rename的用法。
7.掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。
二、实验平台1、操作系统:Windows XP或Windows 20032、数据库管理系统:SQL Server 2005三、实验内容1.分别使用SQL Server管理平台和Transact-SQL语句为教务管理系统数据库的《学生信息》和《课程信息》创建主键索引。
(1) 使用SQL Server管理平台为教务管理系统数据库的《学生信息》和《课程信息》创建主键索引。
(2) 使用Transact-SQL语句为教务管理系统数据库的《学生信息》和《课程信息》创建主键索引。
USE教务管理系统GOcreate unique nonclustered index学生信息_idxon学生信息(学号)GOUSE教务管理系统GOcreate unique nonclustered index课程信息_idxon课程信息(课程编号)GO2.使用SQL Server管理平台按《课程信息》的课程编号列创建唯一性索引。
3.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的《成绩表》的“分数”字段创建一个非聚集索引,命名为《成绩_index》。
(1)使用SQL Server管理平台为教务管理系统数据库的《成绩表》的“分数”字段创建一个非聚集索引,命名为《成绩_index》。
《数据库原理与应用》实验题目及答案

《数据库原理与应用》实验题目及答案《数据库原理与应用》实验作业布置实验1 数据库的建立修改与删除完成以下实验报告:《数据库原理与应用》实验报告实验1 数据库的建立修改与删除二、实验环境操作系统:Windows XP。
数据库管理系统:MS SQL Server 2000 或MS SQL Server 2008。
三、实验目的1.熟悉SQL Server 2000上机环境,学会SQL Server 2000“企业管理器”以及“查询分析器”的启动与退出;或熟悉MS SQL Server 2008上机环境,学会SQL Server Management Studio的启动与退出。
2.掌握建立数据库的两种方法。
3.掌握查看和修改数据库的两种方法。
4.掌握删除数据库的两种方法。
四、实验内容(一) 规定内容1. 在用户方便的存储空间上建立存放用户数据库的文件夹。
本实验在D盘根目录下建立文件夹:D:\SQL2000DB,再建立存放T_SQL 源代码的文件夹:D:\SQL2000DB\T_SQL 2.利用企业管理器创建学生课程数据库ST,参数如表1.1所示。
3.利用企业管理器查看ST数据库的属性。
4.使用T-SQL语句建立学生-课程数据库ST,参数如表1.1所示。
5.使用T-SQL语句建立数据库JXDB,参数如表1.2所示。
6.使用T-SQL语句为数据库JXDB添加文件组JX_Group2,并为此文件组添加1个数据文件JXDB_Data4;添加1个日志文件JXDB_log1。
参数由用户自己设定。
7.使用T-SQL语句修改数据库JXDB中次数据文件JXDB_Data4的属性:文件初始大小改为5M,增长方式改为每次按20%增长。
删除日志文件JXDB_log1。
8.使用T-SQL语句删除数据库JXDB。
(二) 自定内容五、出现的问题及解决方法实验2 表结构的建立修改删除及完整性约束条件定义完成以下实验报告:《数据库原理与应用》实验报告一、实验题目实验2 表结构的建立修改删除及完整性约束条件定义二、实验环境操作系统:Windows XP。
数据库实验-数据库索引、视图与触发器

石家庄经济学院实验报告学院: 信息工程学院专业: 网络工程信息工程学院计算机实验中心制1.索引的建立和删除操作2.视图的创建、修改、更新和查询操作二实验目的1.掌握数据库索引建立与删除操作,掌握数据库索引的分类,并了解建立数据库索引的意义、作用。
2.掌握视图的创建和查询操作,理解视图的使用,理解实图在数据库安全性中的作用。
三实验内容1.索引的建立和删除操作(1)在S表中,建立按照sno升序的惟一性索引snoIDX。
(2)在SC表中,建立按照学号升序和课程号降序的唯一性索引scIDX。
(3)在S表中,按照生日建立一个非聚簇索引birthdayIDX。
(4)在C表中,建立一个按照课程名升序的聚簇索引cnameIDX。
(5)删除索引cnameIDX。
2.视图的创建、修改、更新和查询操作(1)建立一个关于所有女生信息的视图S_GIRL。
(2)将各系学生人数,平均年龄定义为视图V_NUM_A VG(3)建立一个视图反映学生所选课程的总学分情况TOTAL_CREDIT。
(4)建立一个所有学生课程成绩的视图S_GRADE,包括基本学生信息,课程信息和成绩。
(5)在视图S_GRADE基础之上,建立一个两门课以上成绩不及格的学生情况视图FAIL_GRADE。
(6)建立一个至少选修了4门课及4门课以上的学生信息的视图SC_FOUR。
(7)修改视图S_GIRL,要求只显示1997年以前出生的女生信息。
(8)在视图FAIL_GRADE查询不及格超过2门课的学生信息。
(9)删除视图S_GRADE。
(10)通过视图S_GIRL,将“王丹”的名字修改为“汪丹”,并查询结果。
(11)通过视图S_GIRL,新增一个学生信息(“刘兰兰”,“女”,“计算机学院”,1996-8-8),并查询结果。
(12)通过视图S_GIRL,删除1995年出生的女生信息,并查询结果。
(13)通过视图S_GRADE,将“汪丹”的名字修改为“王丹”,是否可以实现,请说明原因。
实验训练4:视图和索引的构建与使用

实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解视图和索引的概念和作用,练习视图的基本操作,包括视图的建立,视图的查询,视图的更新,视图的删除,体会视图带来的方便;练习索引的创建和删除,对比有索引和无索引的基本表查询速度,体会索引的优势。
实验内容:【实验4-1】创建视图(1)单源视图:建立今年新增的会员的视图;建立“奔驰”品牌的汽车配件视图,并要求进行修改和插入操作时仍需保证该视图只能是“奔驰”品牌。
(2)多源视图:建立每个会员的订单视图(包含会员编号、会员名称、订单编号、下单日期、货品总价)。
(3)在已有视图上定义的新视图:建立价格小于1000元的‘奔驰’品牌的汽车配件视图。
(4)表达式的视图:建立每个会员的购物信息视图(包含会员编号、会员名称、创建时间、汽车配件编号、汽车配件名称、单价、数量、金额)。
(5)分组视图:定义一个视图可以看出每天的销售数量和销售收入;定义一个视图可以看出每天每一种汽车配件的销售数量和销售收入。
【实验4-2】查询视图:在实验4-1中定义的视图或者与基表上共同完成查询:(1)检索采购了‘奔驰’品牌的汽车配件的会员编号、会员名称。
(2)查询今年新增会员的订单信息。
(3)查询会员名称为‘李广’的购物信息(包含会员编号、会员名称、创建时间、汽车配件编号、汽车配件名称、单价、数量、金额)。
(4)查看本月的销售数量和销售收入,查看本月的每一种汽车配件的销售数量和销售收入【实验4-3】更新视图(1)将‘奔驰’品牌的价格下调5%,用Select查询更新前后结果。
(2)在今年新增会员视图中,插入一个新会员的记录,其中会员名称为‘张飞’,密码为999999,邮箱为123456@。
用Select查询更新前后结果。
(3)在今年新增会员视图中,删除会员名称为‘张飞’的会员信息。
用Select查询更新前后结果。
【实验4-4】删除视图:删除今年新增会员视图。
【实验4-5】创建索引(1)创建汽车配件表上的汽车配件编号的索引(聚簇索引)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
索引
--为表student中SName属性建立惟一索引
create unique index snameindex on student(SName)
--为teacher中的tname属性建立惟一聚集索引。
由于sqlserver2005在主键和具有unique约束的属性上自动建立了索引,且在主键上自动建立了聚集索引,因此必须移除主键(或其它聚集索引),然后才能在tname上建立聚集索引create unique clustered index tnameindex on teacher(tname)
移除主键
然后还原Tno为teacher表的主键
--利用系统存储过程sp_helpindex查看表student上的所有索引。
exec sp_helpindex student
--利用系统存储过程sp_rename将表student上的索引改名。
exec sp_helpindex student
exec sp_rename 'student.snameindex','snameindex2'
--删除表student中的惟一索引。
(注意,sqlserver2005在主键和具有unique约束的属性上自动建立了索引,要删除这些索引,必须先取消这些属性的主键或unique性质(通过修改表),才能删除索引,不能直接删除索引)
drop index student.snameindex2
--视图
--建立视图teacherview1(无check option选项),只显示教师表中姓张的教师的教师编号、教师姓名、所在系。
create view teacherview1
as
select Tno, TName, DepID
from teacher
where TName like '张%'
--建立视图teacherview2(带check option选项),只显示教师表中姓张的教师的教师编号、教师姓名、所在系。
create view teacherview2
as
select Tno, TName, DepID
from teacher
where TName like '张%'
with check option
--建立视图teacherview3(带encryption选项),只显示教师表中姓张的教师的教师编号、教师姓名、所在系。
create view teacherview3
with encryption
as
select Tno, TName, DepID
from teacher
where TName like '张%'
--分别向teacherview2、teacherview1中插入记录(’866’,’杨志’,3),体会with check option选项的作用。
insert into teacherview1 values('866','杨志',3)
insert into teacherview2 values('867','王五',3)
--利用sp_helptext分别查看teacherview1、teacherview3的定义,体会with encryption 的作用。
exec sp_helptext teacherview1
exec sp_helptext teacherview3
--创建视图scoreview(sno,sname,average),用来显示学生的学号、姓名,平均成绩。
create view scoreview(sno,sname,average)
as
select t. SN, t.SName, s.ave
from student t, (select SNo, avg(score) ave from sc group by SNo) s
where t.SNo=s.SNo
--利用系统存储过程将teacherview2改名为tempview并删除。
sp_rename teacherview2,tempview
drop view tempview。