实验训练4:视图和索引的构建与使用
数据库视图和索引的创建及使用

数据库视图和索引的创建及使用数据库是一个用于存储和管理数据的系统,它可以通过视图和索引来提高查询和访问数据的效率。
1.视图的创建和使用:视图是一个虚拟表,它是由一个或多个实际表的子集组成的。
可以将视图看作是从一个或多个表中选择出的行和列的集合。
创建视图可以简化复杂的查询操作,隐藏表的结构,方便用户对数据进行访问。
创建视图的语法如下:```CREATE VIEW view_name ASSELECT columnsFROM tablesWHERE conditions;```其中,view_name是视图的名称,columns是需要选择的列,tables 是需要选择列的表,conditions是筛选条件。
使用视图可以像使用实际表一样进行查询操作,例如:```SELECT*FROM view_name;```视图还支持更新操作,可以对视图进行插入、更新、删除等操作,数据库会将对视图的更新映射到实际的表上。
2.索引的创建和使用:索引是对数据库表中一列或多列的值进行排序的一种结构,它可以提高查询速度,加快数据的检索。
索引可以看作是一个目录,它包含有关表中数据的信息,使得数据库在执行查询时可以更快地找到需要的数据。
创建索引的语法如下:```CREATE INDEX index_nameON table_name (column1, column2, ...);```其中,index_name是索引的名称,table_name是需要创建索引的表名,column1、column2等是需要创建索引的列名。
使用索引可以加快查询速度,例如:```SELECT*FROM table_nameWHERE column_name = value;```如果没有索引,数据库会遍历整个表来找到与条件匹配的行,如果有索引,数据库可以利用索引的结构来快速定位符合条件的行。
需要注意的是,索引并不适合所有的列和表,创建索引会占用额外的磁盘空间,并且在插入、更新和删除操作时需要维护索引的结构,会影响到数据的修改速度。
南昌大学计算机数据库实验四_索引和视图

南昌大学计算机数据库实验四_索引和视图实验四索引和视图学号: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、惟一索引的含义是什么?。
实验四 视图、索引的创建与管理

实验四视图、索引的创建与管理一、实验目的1.了解视图、索引的概念及作用。
2.掌握视图和数据表的区别。
3.掌握索引的分类。
4.掌握创建视图、索引的方法。
5.掌握查看和修改视图、索引的方法。
6.掌握删除视图、索引的方法。
二、实验内容视图实验内容:1.新建BOOKS数据库,使用管理控制台创建名称为“图书借阅信息表”的数据表,表2.在3.使用管理控制台创建一个名为“读者借阅信息_VIEW”的视图,要求显示所在部门是“计算机系”或“外语系”的读者借阅信息,包括“读者编号”、“姓名”、“所在部门”、“图书编码”和“图书状态”五个字段。
4.使用SQL语句创建一个名为“计算机系续借信息_VIEW”的视图,要求显示计算机系读者2010-10-1以后续借的图书信息,包括“姓名”、“图书编码”和“借阅日期”三个字段。
5.使用管理控制台查看“读者借阅信息_VIEW”视图的定义信息和依赖的对象。
6.使用系统存储过程查看“计算机系续借信息_VIEW”视图的定义信息和依赖的对象。
7.使用管理控制台修改“读者借阅信息_VIEW”视图,要求只显示计算机系男读者借阅信息,包括“读者编号”、“姓名”、“所在部门”、“图书编码”和“图书状态”五个字段。
8.使用SQL语言修改“计算机系续借信息_VIEW”视图,要求显示计算机系或外语系读者2006-1-1以后续借的图书信息,包括“姓名”、“所在部门”、“图书编码”和“借阅日期”四个字段。
9.分别使用管理控制台和SQL语言向视图“读者借阅信息_VIEW”中插入一条记录,看操作能否成功,为什么?10.使用管理控制台删除“读者借阅信息_VIEW”视图。
11.使用SQL语言删除“计算机系续借信息_VIEW”视图。
索引实验内容:12.使用管理控制台创建一个新的索引,索引名称为“IX_姓名_所在部门”,使用的数据表是“读者基本信息表”,所用的字段包括“姓名”和“所在部门”两个字段。
13.使用SQL语句创建一个新的索引,索引名称为“IX_图书状态_借阅日期”,使用的数据表是“图书借阅信息表”,所用的字段包括“图书状态”和“借阅日期”两个字段。
实验训练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语句来创建索引。
视图和索引的创建和使用实验报告

信息工程学院实验报告课程名称:《数据库原理》Array实验项目名称:视图与索引得创建与使用一、实验目得:(1)掌握创建视图得SQL语句得用法。
(2)掌握修改视图得方法、(3)熟悉视图更新与基本表更新得区别与联系;认识视图得作用。
(4)熟悉索引得作用,以及不同类型索引得区别。
(5)学会用T—SQL语句对表创建与删除索引二、实验设备与器件Win7+Sql server2008三、实验内容与步骤利用备份文件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,能否实现?若无法实现说明原因。
SQL数据库中索引与视图的创建与使用

实验五索引与视图的创建与使用
一、实验目的
1)掌握使用SQL Server Management Studio和Transact-SQL语句创建索引。
2)掌握使用SQL Server Management Studio和Transact-SQL语句查看、修改和删除索引。
3)掌握利用“对象资源管理器”和CREATE VIEW命令创建视图的具体操作。
4)熟悉利用视图修改数据的操作。
二、实验要求
1)分别使用“对象资源管理器”和Transact-SQL语句为数据库中的某个表创建一个符合索引。
2)分别使用“对象资源管理器”和Transact-SQL语句查看第1题创建的索引信息,并重命名该索引。
3)删除第1题创建的索引。
4)分别利用“对象资源管理器”和CREATE VIEW命令创建视图。
5)通过视图修改数据。
三、实验步骤:
1.在新建的数据库test中的Student_Sno创建新的关于Sno和Sname的索引:
用SQL语言建立一个Student_Sname索引:
2.查看刚才新建的索引并对其进行重命名:
3.删除新建的索引:
4.对于Student表创建新的视图:
四、实验小结
通过本次实验,我加深了对索引和视图的创建以及使用方法,了解了不同的索引和视图的具体的不同的环境下的不同使用情况,同时也对数据库的操作有了进一步的加深和理解。
实验训练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)。
数据库原理实验报告-实验四-视图与索引
《数据库原理》实验报告
题目:实验四
视图与索引
一、实验内容、步骤以及结果
1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。
(5
分)
2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ)(10分,每种方法5分)。
-- 第一种方法
CREATEVIEW V_SPJ AS
SELECT sno , pno , qty FROM SPJ
WHERE jno =(
SELECT jno FROM J
WHERE jname = ' 三建 '
);
GO
-- 删除建好的视图
DROPVIEW V_SPJ ;
GO
-- 第二种方法
CREATEVIEW V_SPJ AS
SELECT sno , pno , qty
FROM SPJ , J
WHERE J . jno = SPJ . jno AND J . jname = ' 三建 ' ;
3.用SQL语句完成第五版教材第三章第11题中的视图查询(10分,每小题5分)。
11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。
针对该视图VSP完成下列查询:
(1)找出三建工程项目使用的各种零件代码及其数量。
(2)找出供应商S1的供应情况。
4.用SQL语句完成视图的数据更新。
(15分,每题5分)
(1) 给视图V_SPJ中增加一条数据。
提示:
- SPJ表中 JNO允许为空时,数据可以插入基本表,此时JNO为NULL,由于 JNO 为NULL,所以视图中没有该条数据。
- SPJ表中JNO不能为空时,可以使用 instead of触发器实现。
(2) 修改视图V_SPJ中的任意一条数据的供应数量。
(3) 删除视图V_SPJ中的任意一条数据(注意所创建视图可以视图消解时,才能正常删除,否则会删除失败;也可以考虑用instead of触发器实现)。
5.用图形用户界面对Student数据库中C表的Cno字段创建一个降序排列的唯一索引,索引名称IX_CNo。
(5分)
6.使用SQL语句对Student数据库完成以下的索引操作。
(15分,每题5分)(1) 在C表的CName属性上创建一个非唯一性的聚簇索引,索引名 IX_ CName。
(提示:创建这个聚簇索引之前,需要首先删除C表的主键约束。
SQL Server中,给某张表指定主键时,会自动创建为主属性一个聚簇索引。
)
(2) 在SC表上创建一个名为IX_Cnosno的非聚簇复合索引,该索引是针对sno,cno属性集建立的升序索引。
(3) 删除C表的索引IX_CName。
7.自己设计一个实验验证索引对数据库查询效率的提升作用。
(40分)
(提示:需要数据量比较大的情况下才容易进行对比)
采用一卡通消费记录作为实验数据,一共 812条记录,
将交易发生时间设置为主键,建立升序索引,查询某天的消费记录,与未建立索引时相比较。
每种情况查询 5次,计算平均时间。
单位:毫秒
第 1 次第 2 次第 3 次第 4 次第 5 次平均时间
不使用索引1043 1000 990 990 1013 1007.2
使用索引1000 1003 1000 1000 1003 1001.2
通过数据可以看出,建立索引后查询平均时间确实较没有索引时短。
二、实验中出现的问题以及解决方案 ( 对于未解决问题请将问题列出来 )
除了标题内容以外,该部分内容中还可以写对于实验的一些感受,建议,意见等。
问题:在 Student 数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是 1996 年出生的学生的视图,因为 sbirth 的类型是 date ,不能用LIKE ’ 1996% ’ 命令进行检索。
解决方案:使用BETWEEN ‘1996-1-1’ AND ‘1997-1-1’ 表达式。
如下图:
批阅者:批阅日期:实验成绩:批注:。