上机实验4 视图和索引操作2008
视图和索引的创建和使用实验报告
信息工程学院实验报告课程名称:《数据库原理》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”的姓名改为“刘晓晨”,能否实现?若无法实现说明原因。
关系数据库与SQL Server 2008第20讲 视图和索引(实训)
fillfactor=60
动手操作4:
使用视图删除数据表中的数据
任务1:用命令方式或对象资源管理器管理器 方式,删除“v1”视图中,学号为 ‘2012130206’的记录。
delete from v1 where 学号=‘2012130206’
任务2:用命令方式或对象资源管理器管理器 方式,删除“v成绩”视图中的记录。观察 会出现什么情况?为什么?
因为: 如果视图引用了多个表时,无法用delete命令删除数据。
动手操作5:删除视图
要求:用命令方式或对象资源管理器管理器方 式,删除创建的任何一个视图。
动手操作6:创建索引
任务1:在kc表的“课程名”列上创建一个非聚集索 引,索引名为“ix_kcm”,并降序排列。 create index ix_kcm on kc ( 课程名 desc)
动手操作1:
创建视图和查看视图的定义
任务3:用命令方式,创建一个名为“V个人最高分” 的视图,用于查询每门课程的最高分的学生学号 、姓名、课程号、成绩信息。
create view V个人最高分 as select xsqk.学号,姓名,课程号,成绩 from xsqk, xs_kc a where xsqk.学号= a.学号
任务2:在kc表中,重新创建名为“ix_kcm”的索引, 使其成为唯一性的非聚集索引。
create unique index ix_kcm on kc ( 课程名 desc) with drop_existing
数据库原理实验报告-实验四-视图与索引
一、实验内容、步骤以及结果1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。
(5分)2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ)(10分,每种方法5分)。
--第一种方法CREATE VIEW V_SPJ ASSELECT sno,pno,qty FROM SPJWHERE jno=(SELECT jno FROM JWHERE jname ='三建');GO--删除建好的视图DROP VIEW V_SPJ;GO--第二种方法CREATE VIEW V_SPJ ASSELECT sno,pno,qtyFROM SPJ,JWHERE 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。
实验四视图和索引的使用
实验四视图和索引的使用
实验四视图和索引的使用
一、实验目的
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企业控制管理器的使用。
2. 掌握数据插入、修改、更新和删除。
3.掌握索引、视图的创建。
4. 掌握索引、视图的删除。
三、实验仪器环境与要求PC机,SQL SERVER2005。
四、实验要求1.复习教材第三章,熟悉SQL语句。
2.能够熟练掌握数据插入、修改、更新和和删除语句的一般格式及使用方法。
3.掌握索引的建立和删除方法。
4.掌握视图建立、修改和删除;5.掌握视图查询。
6.五、实验原理SQL语言基本应用。
六、实验步骤:(1)启动SQL SERVER。
(2) 附加数据库;(3) 验证如下例子:1 建立索引1. 为学生选课数据库中的Student,Course,Sc三个表建立索引。
其中Student表按“学号”升序建唯一索引C1,Course表按“课程名”降序建唯一索引C2,Sc表按“学号”升序和“课程号”升序建唯一索引C3。
CREATE UNIQUE INDEX C1ON STUDENT(SNO);CREATE UNIQUE INDEX C2ON COURSE(CNAME DESC);CREATE UNIQUE INDEX C3ON SC(SNO,CNO);2. 在基本表Student的Sname(姓名)列上建立一个聚簇索引c4,而且Student中的物理记录将按照Sname值的升序存放。
CREATE CLUSTER INDEX C4ON STUDENT(ANAME)2 删除索引3. 删除以上所建索引C1、C2、C3。
DROP INDEX STUDENT.C1;DROP INDEX COURSE.C2;DROP INDEX SC.C3;3 建立视图4. 建立数学系学生的视图math_stu,并要求进行修改和插入操作时仍需保证该视图只有数学系的学生,视图的属性名为Sno,Sname,Sage,Sdept。
实验训练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)创建汽车配件表上的汽车配件编号的索引(聚簇索引)。
数据库实验四 视图与索引
实验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)记录在查询实验中遇到的典型问题及你所采取的解决方法;。
数据库上机实验报告——SQL Server 2008视图操作
附加 3.
SELECT Sno,Sname,Ssex,Sage FROM JSJ_Student WHERE Sage<22 and Ssex='男'
附加 4.
USE TS UPDATE JSJ_Student SET Sname='樊虹宇' WHERE Sno='09110106'
(空间不够,可加附页)
四、源程序调试过程和(或)实验分析 1.
2.
3.
4.
5.ห้องสมุดไป่ตู้
6.
7.
附加 1.
附加 2.
附加 3.
附加 4.
(空间不够,可加附页)
5.
USE TS UPDATE JSJ_STUDENT SET Sage =Sage+1 SELECT * FROM Student
6.
USE TS DELETE FROM JSJ_STUDENT WHERE Sno='09110101' SELECT * FROM Student
7.
USE TS DROP VIEW JSJ_SC_001
创建时间:
三、源程序(实验步骤/实验过程/算法)
1.
CREATE VIEW JSJ_STUDENT AS SELECT * FROM Student WHERE Sdept='计算机系'
2.
CREATE VIEW SC_001 AS SELECT * FROM SC WHERE Cno='001'
数据库视图及索引操作实验4
数据库原理及应用实验报告
实验名称数据库视图及索引的操作实验室502 实验日期
修改:在查询数据库中输入语句:
use 学生课程
go
alter view 数学系学生视图
as
select * from 学生where 性别='男' ,并运行如图
在学生表中的姓名和专业上建立唯一性索引和在学生表的姓名列上建立非聚集索引。
建立非聚集索引:
use 学生课程
go
create nonclustered index index_学生姓名on 学生(姓名)
五、调试过程及实验结果(详细记录程序在调试过程中出现的问题及解决方法;
记录程序执行的结果)
问题一:在视图中选择相应的属性时,遇到要添加函数属性,不能直接在表中直接点击,然后在SQL语句栏修改并添加相应的语句使之符合题意,题目中没有直接给出要分组,由于我没有分组,在运行时提示要分组,根据提示最后成功的运行视图。
问题二:聚集索引和非聚集索引的差别:聚集索引会对表和视图进行物理排序,所以这种索引对查询非常有效,在表和视图中只能有一个聚集索引。
键约束时,如果表中没有聚集索引,SQLServer会用主键列作为聚集索引键,可以在表的任何列或列的组合上建立索引,实际应用中一般为定义成主键约束的列建立聚集索引,而非聚集索引不会对表和视图进行物理排序,
存在聚集索引,则表是未排序的,在表或视图中,最多可以建立。
实验四 视图和索引
实验四视图和索引班级学号姓名一、实验目的使学生掌握SQL SERVER中的视图创建、查看、修改和删除的方法;索引的创建和删除方法二、实验内容在学生-课程数据库中(1)用图形工具和T-SQL两种方法创建视图,取名为view_stu_grade,要求查看学生的学号,姓名,课程名和成绩。
(2)若发现视图定义的结构不能很好满足要求,还可以对它进行修改。
(3)删除视图(4)尝试分别为student表的每一个属性列添加一个惟一索引,将出现的现象和原因分析一下。
(5)删除索引三、实验过程(1)用图形工具和T-SQL两种方法创建视图,取名为view_stu_grade,要求查看学生的学号,姓名,课程名和成绩。
①使用图形工具②使用T-SQL语句③ 视图(2)若发现视图定义的结构不能很好满足要求,还可以对它进行修改。
如需要修改则点击视图选中view_stu_grade右键修改(3)删除视图①图形工具②T-SQL语句(4)尝试分别为student表的每一个属性列添加一个惟一索引,将出现的现象和原因分析一下。
①选中Student表打开索引,右键新建索引,如图操作②创建索引问题1(未选择要添加到索引键的表列)解决办法问题2(记录相同不能建立唯一索引)解决办法:不建立唯一结果(5)删除索引①图形工具②T-SQL语句四、实验总结通过这节课练习,我进一步掌握了SQL SERVER中的视图创建、查看、修改和删除的方法以及索引的创建和删除方法,其实视图就是表的一个缩影,如果表的基本操作能够熟练运用的话,那视图也就不再话下,知识真的是相通的。
SQLSERVER2008实用教程实验参考答案解析(实验4)
SQLSERVER2008实用教程实验参考答案解析(实验4)实验4 数据库的查询和视图一、SELECT语句的基本使用1. 查询Employees表中所有数据2. 查询Employees表中指定字段数据3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行4. 使用WHERE子句查询表中指定的数据查询编号为’000001’的雇员的地址和查询月收入高于2000元的员工查询1970年以后出生的员工的和住址5. 使用AS子句为表中字段指定别名查询Employees表中女雇员的地址和,并将列标题显示为地址和查询Employees表中男雇员的和出生日期,并将列标题显示为和出生日期6. 使用使用CASE子句查询Employees表中员工的和性别,要求Sex值为1时显示“男”,为0时显示“女”查询Employees表中员工的、住址和收入水平,2000元以下显示为低收入,2000~3000地显示为中等收入,3000元以上显示为高收入。
7. 使用SELECT语句进行简单计算计算每个雇员的实际收入8. 使用置函数获得员工总数计算Salary表中员工月收入的平均数获得Employees表中最大的员工计算Salary表中所有员工的总支出查询财务部雇员的最高和最低实际收入9. 模糊查询找出所有姓王的雇员的部门号找出所有地址中含有“”的雇员的及部门号找出员工中倒数第二个数字为0的员工的、地址和学历10. Between…And…和Or的使用找出收入在2000~3000元之间的雇员编号找出部门为“1”或“2”的雇员的编号11. 使用INTO子句,由源表创建新表由表Salary创建“SalaryNew”表,要求包括编号和收入,选择收入在1500元以上的雇员由表Employees创建“EmployeesNew”表,要求包括编号和,选择所有男员工二、子查询的使用1. 查找在财务部工作的雇员情况2. 用子查询的方法查找所有收入在2500以下的雇员的情况3. 查找财务部年龄不低于研发部雇员年龄的雇员4. 用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的5. 查找比所有财务部的雇员收入都高的雇员的6. 用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的三、连接查询的使用1. 查询每个雇员的情况及薪水的情况2. 查询每个雇员的情况及其工作部门的情况3. 使用连接的方法查询名字为“王林”的雇员所在的部门4. 使用连接的方法查找出不在财务部工作的所有雇员信息5. 使用外连接方法查找出所有员工的月收入6. 查找财务部收入在2000元以上的雇员及其薪水详情7. 查询研发部在1976年以前出生的雇员及其薪水详请四、聚合函数的使用1. 求财务部雇员的平均收入2. 查询财务部雇员的最高和最低收入3. 求财务部雇员的平均实际收入4. 查询财务部雇员的最高和最低实际收入5. 求财务部雇员的总人数6. 统计财务部收入在2500元以上的雇员人数五、GROUP BY、ORDER BY子句的使用1. 查找Employees表中男性和女性的人数2. 按部门列出在该部门工作的员工的人数3. 按员工的学历分组,排列出本科、大专、硕士的人数4. 查找员工数超过2的部门名称和雇员数量5. 按员工的工作年份分组,统计各个工作年份的人数,例如工作1年的多少人,工作2年的多少人6. 将雇员的情况按收入由低到高排列7. 将员工信息按出生时间从小到大排列8. 在ORDER BY 子句中使用子查询,查询员工、性别和工龄信息,要求按实际收入从大到小排列六、视图的使用1. 创建视图(1)在数据库YGGL上创建视图Departments_View,视图包含Department表的全部列(2)创建视图Employees_Departments_View,视图包含员工、、所在部门名称(3)创建视图Employees_Salary_View,视图包含员工、和实际收入三列2. 查询视图从视图Employees_Salary_View中查询出为“王林”的员工的实际收入3. 更新视图(1)向视图Departments_View中添加一条记录(‘6’,‘广告部’,‘广告业务’)执行完命令后,分别查看Departments_View和Department表中发生的变化(2)尝试向Employees_Departments_View中添加一条记录,看看会发生什么情况(3)尝试向Employees_Salary_View中添加一条记录,看看会发生什么情况(4)将视图Departments_View中,部门号为‘6’的部门名称修改为‘生产车间’(5)删除视图Departments_View中最新增加的的一条记录4. 删除视图Employees_Departments_View5. 在界面工具中操作视图一、SELECT语句的基本使用1. 查询Employees表中所有数据SELECT*FROM Employees;2. 查询Employees表中指定字段数据SELECT EmployeeID,Name,DepartmentID FROM Employees;3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行SELECT Distinct DepartmentID,Sex FROM Employees;4. 使用WHERE子句查询表中指定的数据查询编号为’000001’的雇员的地址和Select Address,PhoneNumber FROM Employees WHERE EmployeeID='000001';查询月收入高于2000元的员工SELECT EmployeeID FROM Salary WHERE InCome>2000;查询1970年以后出生的员工的和住址SELECT Name,Address FROM Employees WHERE YEAR(Birthday)>'1970';SELECT Name,Address FROM Employees WHERE Birthday>'1970';5. 使用AS子句为表中字段指定别名查询Employees表中女雇员的地址和,并将列标题显示为地址和SELECT Address AS地址,PhoneNumber AS FROM Employees;查询Employees表中男雇员的和出生日期,并将列标题显示为和出生日期SELECT Name AS,Birthday AS出生日期FROM Employees WHERE Sex=1;6. 使用使用CASE子句查询Employees表中员工的和性别,要求Sex值为1时显示“男”,为0时显示“女”SELECT Name AS,CASEWHEN Sex=1 THEN'男'WHEN Sex=0 THEN'女'ENDAS性别FROM Employees;查询Employees表中员工的、住址和收入水平,2000元以下显示为低收入,2000~3000地显示为中等收入,3000元以上显示为高收入。
实验报告四 索引和视图
实验四索引和视图一、实验学时2学时二、实验目的(1)理解索引的概念与类型。
(2)掌握使用企业管理器创建与维护索引的方法。
(3)掌握T-SQL语句创建与维护索引的方法。
(4)理解视图的概念。
(5)掌握视图创建、更改的方法。
(6)掌握用视图管理数据的方法。
三、实验要求(1)硬件设备:奔腾II或奔腾II以上计算机,局域网。
SERVER、WINDOWS7、XP、WINDOWS9X/NT、WINDOWS(2)软件环境:WINDOWSSQL SERVER 2000/2005/2008中文版企业版或标准版。
(3)实验课前预习,课后及时完成实验内容。
(4)实验过程及记录按题目格式要求填写代码清单。
四、实验内容(一)索引索引分为两种:聚簇索引和非聚簇索引。
每张表只能有一个聚簇索引。
创建索引时的缺省设置是非聚簇索引。
1.使用企业管理器创建、管理索引(1)创建索引1)为Student表创建一个以Sno为索引关键字的惟一聚簇索引。
(若原已有,请删除,索引名为Sno_index)(提示:选择表后点击鼠标右键,选“设计”,窗口空白区域点击鼠标右键,选“索引/键”)基本步骤:2)为Student表创建以Sname,Sex为索引关键字的非聚簇索引(对Sname 以升序来排列,Sex以降序排列,并设置填充因子为70%)。
索引名为:SS_index。
(提示:填充因子为索引创建时索引里的数据页被填充的数量)基本步骤:(2)重命名索引将索引文件Sno_index重新命名为Sno_index1。
基本步骤:(3)删除索引将索引文件Sno_index1删除。
基本步骤:2.使用T-SQL语句创建、管理索引(1)创建索引1)为SC表创建一个非聚集索引Grade_index,索引关键字为Grade,升序,填充因子为80%。
(提示:with fillfactor=)T-SQL语句:create nonclustered index Grade_indexon SC(Grade)with fillfactor=80;2)为SC表创建一个唯一性聚集索引SC_index,索引关键字为Sno,Cno。
实验四索引与视图
实验4 数据库的索引与视图定义实验一、实验目的本实验的目的是使学生掌握索引与视图的定义与维护操作,加深对索引与视图在关系数据库中的作用的理解。
二、实验时数2学时[相关知识]建立索引是加快查询速度的有效手段。
用户可以根据应用环境的需要,在基本表上建立一个或多个索引,以提供多个存取路径,加快查找速度。
视图是根据子模式建立的虚拟表。
一个视图可以由一个表构造,也可以由多个表构造。
查看和修改视图就如同对表的操作一样,非常容易。
三、实验内容㈠索引1.创建索引1)为PROJ表的PNAME列创建非聚集索引Pindex。
2)为DEPA表的DNAME(降序),ADDR两列创建唯一非聚集索引Dindex。
3)在PROJ表的PNAME列上创建唯一非聚集索引Pindex,若该索引已存在则删除后重建。
2.查看索引1)查看DEPA表的索引信息。
2)查看数据库COMPANY索引使用的空间信息3.索引更名1)将DEPA表的索引Dindex名更改为Dindex1。
4.删除索引1)删除DEPA表的索引Dindex1。
㈡视图1.创建视图1)创建14号部门员工的视图EMPL_14(ENO,ENAME,SALARY)。
2) 创建包含项目名与员工名及工作天数的视图Prjemp。
3)在视图EMPL_14上创建工资在3000以上的员工的视图EMPL_14H3。
4)创建每个部门的平均工资的视图E_AVG(DNO,SAVG)。
2.查询视图1)根据视图Prjemp查询做'设计系统'项目的所有员工及工作天数。
2)根据视图E_AVG查询‘客户中心’的平均工资。
3.更新视图1)在视图EMPL_14中将1042号员工的姓名改为‘李立春’。
2)向视图EMPL_14中插入一条新记录(1050,‘赵英’,3500)。
3)删除视图EMPL_14中1042号员工的记录。
4.删除视图1)删除视图Prjemp。
实验训练4视图和索引的构建与使用
实验训练4:视图和索引的构建与使用实验目的:1. 了解视图和索引的概念和作用;2. 掌握创建视图和索引的语法和方法;3. 掌握使用视图和索引进行数据查询的方法。
实验环境:MySQL数据库。
实验内容:1. 创建视图视图是一种虚拟表,它是根据SQL 查询语句所定义的结果集生成的。
视图并不存储数据,而是根据需要从基本表中获取数据。
视图的作用是简化常用查询操作,使查询语句更加简洁明了。
创建视图的语法如下:```CREATE VIEW view_name ASSELECT column1, column2, ...FROM table_nameWHERE condition;```例如,我们可以创建一个视图来显示学生的姓名和成绩:```CREATE VIEW student_score ASSELECT name, scoreFROM students;```2. 使用视图查询数据使用视图进行查询时,可以像查询普通表一样进行查询操作。
例如,我们可以查询学生的姓名和成绩:```SELECT * FROM student_score;```3. 创建索引索引是一种数据结构,用于提高数据的查询效率。
索引可以加快查询操作的速度,但会降低插入和更新操作的速度。
通常,我们会在经常使用的列上创建索引,以提高查询效率。
创建索引的语法如下:```CREATE INDEX index_nameON table_name (column1, column2, ...);```例如,我们可以在学生表的姓名列上创建索引:```CREATE INDEX idx_nameON students (name);```4. 使用索引查询数据使用索引进行查询时,可以通过查询计划来查看是否使用了索引。
例如,我们可以查询姓名为张三的学生:```SELECT * FROM students WHERE name = '张三';```可以通过EXPLAIN 命令查看查询计划:```EXPLAIN SELECT * FROM students WHERE name = '张三';```如果查询计划中出现了Using index,则表示使用了索引。
上机实验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]:视图中的字段名,可省略。
百度 实验-4
北华航天工业学院《数据库系统原理》实验报告报告题目:视图、索引的创建与管理作者所在系部:计算机科学与工程系作者所在专业:计算机科学与技术作者学号:20084051535作者姓名:卢惊波指导教师姓名:贾振华完成时间:2010-05-05北华航天工业学院教务处制视图、索引的创建与管理一、实验目的1、掌握视图和数据表的区别;2、掌握创建、查看、修改和删除视图的方法;3、了解索引的概念和优、缺点;4、掌握创建、查看、修改和删除索引的方法。
二、实验内容(一)附加上次实验所创建的数据库“tb_Library”,并回顾该库的数据表信息。
(二)练习创建和管理视图1、使用管理控制台创建一个名为“计算机系借阅信息_VIEW”的视图,要求显示计算机系读者2009-1-1以后借阅的图书信息,包括“读者姓名”、“图书编号”和“借阅日期”三个字段。
2、使用T-SQL语句创建一个名为“读者借阅信息_VIEW”的视图,要求显示所有的读者借阅信息,包括“读者编号”、“姓名”、“系部”、“图书编号”、“图书名称”和“借阅日期”等字段。
3、使用T-SQL语句创建一个名为“图示借阅信息_VIEW”的视图,要求显示图书的借阅数量,包括“图书编号”、“书名”、“库存册数”、“借阅数量”字段。
4、使用管理控制台查看“读者借阅信息_VIEW”视图的定义信息和依赖的对象。
5、使用系统存储过程查看“计算机系续借阅信息_VIEW”视图的定义信息和依赖的对象。
6、使用管理控制台修改“计算机系借阅信息_VIEW”视图,要求显示计算机系或外语系读者2009-1-1以后续借的图书信息,包括“读者姓名”、“系别”、“图书编号”和“借阅日期”四个字段。
7、修改“计算机系借阅信息_VIEW”视图的名称为“计算机外语借阅信息_VIEW”。
8、使用T-SQL语句修改“读者借阅信息_VIEW”视图,要求只显示计算机系男读者借阅信息,包括“读者编号”、“姓名”、“系部”、“图书编号”、“图书名称”和“借阅日期”等字段。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上机实验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]:视图中的字段名,可省略。
如果没有指定,则视图字段将获得与SELECT 语句中的字段相同的名称。
with ENCRYPTION:对创建视图的T-SQL语句进行加密。
加密过程是不可逆的。
select_statement:定义视图的SELECT语句,它可以使用数据库中的不同数据表和其他视图。
WITH CHECK OPTION:强制所有通过视图修改的数据满足SELECT语句中指定的选择条件。
注意:①下列情况下,有必要指定视图中的字段名:o视图字段是算术表达式、函数或常量等计算得到的;o SELECT语句返回的结果集中包含两个或更多相同的名称的字段,要给某个字段指定一个不同于基表的字段。
例1 创建视图,该视图显示土木学院学生的学号,姓名,班级信息(并强制检查)CREATE VIEW tmStuView(学号,姓名,班级)AS SELECT sno,sname,sdept FROM StudentWHERE sdept='土木学院'WITH CHECK OPTION说明:增加了WITH CHECK OPTION语句后,通过该视图修改Student中信息时,必须满足sdept='土木学院'这个条件。
5.2.4 修改视图的定义1、在对象资源管理器上直接修改启动对象资源管理器中,打开视图所在的数据库,选择并打开“视图”对象。
选择要修改的视图,点右键在选择“设计视图”,打开视图设计器,如图5-3所示图5-3 可做修改的视图设计窗口可直接在该设计视图上修改,保存即可。
2、使用ALTER VIEW 修改视图定义ALTER VIEW语句结构如下:ALTER VIEW view_name[(column[,…n])][WITH ENCRYPTION]ASSelect_statement[WITH CHECK OPTION]可以看到,视图修改的语法结构和创建的语法结构几乎相同,用ALTER 关键字,这里的视图名是已经存在的视图的名。
如果是对Select_statement 做修改,需要重新定义该语句。
5.2.5 删除视图1、在对象资源管理器中删除视图启动对象资源管理器中,打开视图所在的数据库,选择并打开“视图”对象。
选择要修改的视图,点右键在选择“删除”,打开删除视图窗口,点击“确定”即可。
2、使用DROP VIEW删除视图DROP VIEW语句结构如下:DROP VIEW view_name[,…n]说明:可删除一个或者多个视图。
5.2.6 视图重命名1、在对象资源管理器中重命名视图启动对象资源管理器中,打开视图所在的数据库,选择并打开“视图”对象。
选择要修改的视图,点右键在选择“重命名”,即可完成。
注意:视图重命名后,一切引用视图原来名称的语句,都将失去作用。
2、用T-SQL语句重命名视图重命名视图的语句结构如下:sp_rename[@objname=]'object_name'[@newname=]'new_name'[,[@objtype=]'object_type']该语句与数据库重命名的语句相同,参看数据库重命名。
5.2.7 索引概念索引是对数据库中一个或多个字段的值进行排序的结构。
一个索引就是一个列表,包含值和这些值所在的记录在数据表中的位置。
它能够提高检索的速度,改善数据库性能。
1、索引类型:①聚集索引(clustered index)②非聚集索引(nonclustered index )2、索引的其他类型①唯一索引②复合索引5.2.8 创建索引1、系统自动创建索引①创建或者修改数据表时,当一个字段或者字段组合设置唯一约束,那么系统将自动创建非聚集的唯一索引(NONCLUSTERED)。
②创建或者修改数据表时,当一个字段或者字段组合设置主键约束,系统将自动创建聚集的唯一引(CLUSTERED),前提是表中没有聚集索引。
2、在对象资源管理器中创建索引启动对象资源管理器中,打开数据表所在的数据库,选择要创建索引的数据表下的“索引”条目,点右键在选择“新建索引”,出现“新建索引”窗口,如图5-4所示。
图5-4新建索引窗口在该窗口中可以添加索引,按“添加”按钮,也可以删除索引,按“删除”按钮。
在该窗口输入所建索引的名称,选择创建索引的字段。
并设置索引的属性。
如是否为聚集索引(表中已有聚集索引的话,该选项为灰色),是否为唯一索引,是否为填充索引以及填充因子等。
最后选择“确定”即可关闭窗口,并在窗口中看到创建的索引。
3、使用Create Index语句创建索引使用Create index 创建索引的完整语法:CREATE [Unique][Clustered|nonClustered] INDEX index_nameON table_name(column[,……])[ WITH [PAD_INDEX][,FILLFACTOR=fillfactor][,IGNORE_DUP_KEY[,DROP_EXISTING][,] ] [ON filegroup]例6 基于sc表中的sno,cno字段组合创建唯一索引,忽略重复值。
create unique index ix_sc_nonameon sc(sno,cno)with ignore_dup_key5.2.9 删除索引1、在对象资源管理器中删除索引点击目标索引,右击删除。
2、用DROP INDEX语句删除索引DROP INDEX 语句的语法:DROP INDEX table.indexname [,……]table.indexname:索引所在的表名和索引名。
例7删除上例6所创建的索引Drop index sc.ix_sc_noname5.3 实验内容5.3.1 在对象资源管理器中完成下列操作:1、使用对象资源管理器直接创建视图在JXGL 数据库中,基于表“ Student ”,“Course ”,“SC ”创建视图GradeView2 ,包含字段:“Sno”,“Sname”,“Cno”, “Cname”, “Grade”其中在“Sdept”设置筛选条件为“建筑学院”,但要求该字段不在视图中显示出来。
2、在对象资源管理器中修改视图①修改视图GradeView2,使该视图按照“Grade”升序排列。
②重命名视图GradeView2为“学生成绩视图”5.3.2 使用T-SQL语句完成下列操作:1、基于student表创建视图“学生信息”, 该视图的结果集中包含的字段(sno ,sname ,sage,sdept )的值,为该视图设置中文别名,为视图文本加密。
2、基于student,course,sc 表创建视图:gradeView3 ,显示的内容包括学生的学号,姓名,课程编号,课程名称,成绩。
该视图的结果集中包含的字段(student.sno,student.sname,o,ame,sc.grade )的值。
视图的字段名称用中文表示。
3、将视图gradeView3 重命名为“学生选课信息”(sp_rename )4、调用存储过程查分别看视图“学生信息”和“学生选课信息”的视图定义文本。
有何差别?写出查看视图定义文本的命令(sp_helptext )5、修改视图“学生信息”,使之显示“材料学院”的学生信息(显示字段不变),设置强制检查。
6、引用“学生选课信息”视图,查询选修了‘GIS '课程的学生姓名和对应成绩。
7、通过“学生信息”视图向student 表添加一条记录。
(记录内容自定义)想一想:添加记录时有哪些限制?8、通过“学生选课信息”视图分别向student 表和course 表添加一条记录。
(记录内容自定义)想一想:新添加的记录是否会在“学生选课信息”视图中出现,为什么?9、通过“学生选课信息”视图修改course 表中课程号为‘1002’的课程名称(课程号和修改的课程名称可自定义)。
10、通过“学生选课信息”视图将“李四”的“GPS”课程的成绩修改为8911、通过“学生信息”视图将学生姓名为“王五”的记录删除。
5.3.3 在对象资源管理器中完成下列操作:在对象资源管理器中创建索引IX_N_P在JXGL数据库中,为SC表的“Sno“、“Cno“建立唯一索引。
步骤:选中目标表下的“索引”条目右键点击“新建索引”5.3.4 使用T-SQL语句完成下列操作(管理索引):(1)在JXGL数据库中创建表Teacher ,包含字段:Tno,char(4) ,Tname char(8) ,Tdept varchar(20) 。