实验5 索引和视图
实验5实验报告

学号:20164477 姓名:陈家凤实验五SQL语言一、目的与要求1.掌握SQL语言的查询功能;2.掌握SQL语言的数据操作功能;3.掌握对象资源管理器建立查询、索引和视图的方法;二、实验准备1.了解SQL语言的查改增删四大操作的语法;2.了解查询、索引和视图的概念;3.了解各类常用函数的含义。
三、实验内容(一)SQL查询功能使用提供的studentdb数据库文件,先附加到目录树中,再完成下列题目,SQL命令请保存到脚本文件中。
1.基本查询(1)查询所有姓王的学生的姓名、学号和性别Select St_Name,St_Sex,St_IDFrom st_infoWhere St_Name like'王%'图5-1(2)查询全体学生的情况,查询结构按班级降序排列,同一班级再按学号升序,并将结果存入新表new中select*into newfrom st_infoorder by Cl_Name desc,st_ID asc图5-2(3)对S_C_info表中选修了“体育”课的学生的平均成绩生成汇总行和明细行。
(提示:用compute汇总计算)因2014版本已不支持compute关键字,所以选择用其他方式。
Select c_no,scoreFrom s_c_infoWhere c_no=29000011group by c_no,score图5-32.嵌套查询(1)查询其他班级中比“材料科学0601班”的学生年龄都大的学生姓名和年龄select st_name,born_datefrom st_infowhere cl_name!='材料科学0601班'and born_date<(select min(born_date) from st_info where cl_name='材料科学0601班')图5-4(2)用exists查询选修了“9710041”课程的学生姓名select st_namefrom st_infowhere exists(select*from s_c_info where c_no=9710041 andst_id=st_info.st_id)图5-5(3)用in查询找出没有选修“9710041”课程的学生的姓名和所在班级。
MySQL数据库实用教程项目5 视图、索引和事务的使用

5.2 索引
5.2.2 索引的创建
3.用alter table语句创建索引 为了给现有的表增加一个索引,可使用alter table来
创建普通索引、unique索引或 primary key索引。 语法格式:
alter table 表名 add index|unique|primary key 索引名称 (数据列列表)
5.1 视图
5.1.2 视图的创建与管理 2.查看视图
在MySQL中,show tables不仅可以用于查看当前 数据库中存在的所有数据表,同时也可以查看到当前 数据库中存在所有视图。
8
5.1 视图
5.1.2 视图的创建与管理
2.查看视图 仅仅使用show tables语句,在输出结果中,我们根
这表示一个表只能包含一个primary key。
✓ fulltext索引:全文索引,全文索引的索引类型为fulltext。
全文索引只能在varchar或text类型的列上创建,并且只能
在MyISAM表中创建。
19
5.2 索引
5.2.1 索引简介 1.索引的分类 查看数据表中现有索引的语法是:
show index from 数据表名; 【例5.4】查看departments表中现有索引情况。 mysql>show index from departments;
index
索引名
(字段列表),
key
索引名
(字段列表),
unique 索引名 (字段列表),
primary key 索引名 (字段列表),… )
23
5.2 索引
5.2.2 索引的创建 2.使用create index语句在现有表上创建索引
上机五 视图和索引

上机实验五1.如何通过企业管理器和Transact_SQL语句对视图进行创建、修改和删除?通过企业管理器:创建步骤:最后保存该视图即可。
修改步骤:进入该界面重新修改该视图即可。
删除步骤:通过Transact_SQL语句:创建:create view 视图名[with encryption]as select_statement[with check option]修改:利用alter view 视图名删除:利用drop view 视图名1.通过Transact_SQL语句创建一个视图,计算各个班级的各门课程的平均分。
Create view v_avggradeAsSelect substring(pupil.sno,1,len(pupil.sno)-2) as 班级,Cname as 课程名称,Avg(grade) as 平均分From pupil,sc,gradeWhere pupil.sno=sc.sno and o=oGroup by substring(pupil.sno,1,len(pupil.sno)-2), Cname 3. 通过Transact_SQL语句创建一个视图,显示‘高等数学’未过的学生的信息。
Create view v_gradenotpassAsSelect pupil.sno,sname,cname,gradeFrom pupil,sc,courseWhere pupil.sno=sc.sno and o=o and grade<60 And cname=’高等数学’3.通过Transact_SQL语句创建一个视图,查询的数据为99521班学生的考试成绩。
Create view v_grade99521AsSelect pupil.sno,sname,cname,gradeFrom pupil,sc,courseWhere pupil.sno=sc.sno and o=o andleft(pupil.sno,5)=’99521’4.如何通过企业管理器创建索引?步骤:点击‘新建’按钮点击‘确定’点击‘关闭’5.如何删除索引?选中该索引点击‘删除’即可或利用drop index 表名. 索引名完成删除。
实验六:关系图、索引和视图的定义及维护

实验六:关系图、索引和视图的定义及维护一、实验目的1.掌握创建关系图的方法。
2.掌握创建、查看和删除索引的操作和方法。
3.理解视图的含义,能使用SQL Server企业管理器创建视图并对其进行管理。
二、实验环境已安装SQL Server 企业版的计算机(120台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1.索引和视图的创建和管理也可以用查询分析器实现,参照课本上的相关Transact-SQL命令,写出对应的Transact-SQL实现代码。
2.将视图的创建、修改、删除过程与实验二中表的创建、修改、和删除进行对照,看看有什么相同点和不同点。
3.完成实验报告;五、实验内容及步骤以系统管理员身份登录到SQL Server服务器,在SQL Server2005界面中实现第1题操作,其余题目用SQL Server2005界面及T-SQL 语句实现:1.使用创建数据库关系图向导为学生选课数据库中的Student表,Course表,SC表创建关系图。
2.为Student表创建一个基于Sname(姓名)的按降序排列的聚簇索引Stusname。
CREATE CLUSTERED INDEX Stusname ONStudent(Sname DESC)3.为学生—课程数据库中的Student,Course,SC 3 个表建立索引。
其中student按学号升序建唯一索引,course按课程号升序建唯一索引,SC按学号升序和课程号降序建唯一索引,索引名称分别为Stusno,Coucno,Scno。
CREATE UNIQUE INDEX Stusno ON Student(Sno);CREATE UNIQUE INDEX Coucno ON Course(Cno);CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);4.删除 Student表中的Stusname索引。
数据库技术索引与视图

实验报告
课程名称:数据库技术项目名称:索引和视图
姓名:专业:班级:学号同组成员
1注:1、实验预习部分包括实验环境准备和实验所需知识点准备。
2、若是单人单组实验,同组成员填无。
5.分别使用企业管理器和系统存储过程sp_helpindex查看grade
6.使用企业管理器的“向导”工具对grade表创建一个聚集索引和唯一索引。
10.在studentsdb数据库中,使用Transact-SQL
12.分别使用企业管理器和Transact-SQL语句修改视图每个学生所学课程数目。
15.利用视图v_stu_i为student_info表添加一行数据:学号为
16.利用视图v_stu_i删除学号为
实验报告成绩(百分制)__________ 实验指导教师签字:__________
3注:1、实验小结应包含实验所需知识点和实验方法的总结,实验心得体会等。
2、分组实验需包含同组讨论内容。
实验五 视图的创建和使用

实验五视图的创建和使用5.1概述5.1.1任务一理解视图的概念视图是一个虚拟表,其内容由查询定义。
同真实的表一样,视图包含一系列带有名称的列和行数据。
但是,视图并不在数据库中以存储的数据集合形式存在。
行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
对其中所引用的基表来说,视图的作用类似于筛选。
定义视图的筛选可以来自当前或其他数据库的一个或多个表,或者其他视图。
视图被定义后便存放在数据库中,对视图中的数据的操作与对表的操作一样,可以对其进行查询、修改和删除,但对数据的操作要满足一定的条件。
当对视图所看到的数据进行修改时,相应的基表的数据也会发生变化,同时,若基表的数据发生变化,这种变化也会自动地反映到视图中。
5.1.2任务二理解视图的优点用户可以根据自己的实际需要创建视图,使用视图有很多优点,主要有以下几点:1、简单性视图可以屏蔽数据的复杂性,简化用户对数据库的操作。
使用视图,用户可以不必了解数据库的结构,就可以方便地使用和管理数据。
那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
2、逻辑数据独立性视图可以使应用程序和数据库表在一定程度上独立。
如果没有视图,应用一定是建立在表上的。
有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。
3、安全性通过视图用户只能查询和修改他们所能见到的数据。
数据库中的其他数据则既看不见也取不到。
5.2创建视图创建视图的方法有三种:在创建视图前请考虑如下原则:只能在当前数据库中创建视图.视图名称必须遵循标识符的规则,且对每个用户必须为唯一.此外,该名称不得与该用户拥有的任何表的名称相同.可在其他视图和引用视图的过程之上建立视图.SQLServer 2000允许嵌套多达32级视图若要创建视图,数据库所有者必须授予用户创建视图的权限,并且用户对视图定义中所引用的表或视图要有适当的权限5.2.1任务一使用企业管理器创建视图使用企业管理器创建视图的具体操作步骤如下:1、打开企业管理器窗口,打开“新建视图”对话框。
实验5-索引
了要找的数据所在的数据页, • 最后只在这个数据页中查找所需数据
查找示例
SELECT * FROM employee WHERE
eno='E08'
310
数
E01 202
E01 202
E07 203
E07 203
202 E01 101
数数数
E04 104
唯一索引
• 确保索引列不包含重复值。 • 在组合唯一索引的情况下,可以确保索引
列中每个值的组合都是唯一的。 • 例如,如果在last_name、first_name和
middle_initial列的组合上创建了唯一索引 full_name,则该表中任何两个人都不可 以具有完全相同的名字。 • 聚集索引和非聚集索引都可以是唯一的。
5 索引
• 5.1 基本概念 • 5.2 索引分类 • 5.3 创建和删除索引
5.1 基本概念
• 索引与图书中的目录类似。 • 在数据库中,索引使对数据的查找不需要对整个表
进行扫描,就可以在其中找到所需数据。 • 图书的目录注明了各部分内容所对应的页码,而数
据库中的索引是一个表中所包含的值的列表,其中 注明了表中的各行数据所在的存储位置。 • 可以为表中的单个列建立索引,也可以为一组列建 立索引。 • 索引由索引项组成,索引项由来自表中每一行的一 个或多个列(称为索引关键字)组成。 • 当在多个列上建立索引时,系统按索引列出现的先 后顺序对索引列进行排序。
• 非聚集索引就类似于术语表,而数据就类似 于一本书的内容。
非聚集索引的存储示意图
2020年5月30日8时43分
非聚集索引与聚集索引的差别
5-索引和视图(L)1
在查询强制使用中索引
• SQL Server使用查询优化器选择执行查询
的最佳方式 ,包括选择要使用的索引,查 询优化器以页I/O为标准,尝试选出成本最 低的方法 。 • SQL Server中可以强制查询优化器选择某 个特定的索引。 • 制查询优化器选择某个特定的索引。 语法 示例
索引和视图
本次课知识点的作用
掌握索引和视图
本次课教学目标与重难点
教学目标
用索引和视图的优点来优化数据库查询
教学重难点
重点:批处理语句、自定义函数 难点:批处理语句
视图
• 视图是一个虚拟表,可以用来反映一个或多个表的 子集,其内容由一个查询语句定义 • 是一个数据库的数据对象,并不存储数据,只是存 储了一个查询语句 • 被视图引用的表称为基表 • 视图中的数据都来自于基表 • 视图定义好后,就可以象普通表格一样使用 • 使用视图实际就是执行一个保存在视图中的查询语 句
Page202 sid E003 E004 pageptr 303 304
Page203 sid E005 pageptr 301 302
Page602 sid E005 E007 pageptr 203 204
E006
Page204 sid E007 E008 pageptr 302 301
语法
创建聚集索引
• 聚集索引决定数据的物理存储顺序。 • 一个表只能有一个聚集索引。 • 索引可以包含多个数据列。
示例:
CREATE CLUSTERED INDEX CLINDX_titleid ON roysched (title_id)
数据库 索引、视图的基本操作
姓名:专业:_班级:__学号:_同组成员
一、实验预习部分:
Ⅰ.实验环境准备:
硬件环境:微型计算机
软件环境:Windows XP ,SQL Server 2005
Ⅱ.实验知识点准备:
1.聚集索引对表的数据页中的数据按列排序,然后再重新存储到磁盘
(adr)
0001
李涛
无锡市解放东路123号
0002
钱金浩
无锡市人民西路234号
0003
邓杰
无锡市惠河路270号
0004
朱海红
无锡市中山东路432号
0005
欧阳阳文
无锡市中山东路532号
表3-3报纸订阅表(CP)
顾客编号
(cno)
报纸编号
(pna)
订阅份数
(num)
0001
000001
2
0001000005的认值为1录入数据之后:
2、创建与删除索引
(1)使用T-SQL命令对DingBao数据库中PAPER表的pna字段降序建立非聚集索
引pna_index。
(2)在对象资源管理器中修改非聚集索引pna_index,使其对pna字段升序建立。
(3)使用T-SQL命令删除索引pna_index。
刷新对象资源管理器界面,pna索引消失:
3、创建视图(使用T-SQL)
(1)创建视图cp_view,用于显示pna, cno, num。
(2)修改视图cp_view,用于显示订阅份数(num)多于2份的用户的pna, cno, num。
(3)删除视图cp_view。
(4)创建一个视图paper_view,用于显示pno,pna。通过视图paper_view向PAPER表中添加一条记录(000006,’闽北日报’),再通过视图删除这条记录。
实验训练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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
1
数据库技术与应用
实验报告
实验名称: 实验五:索引和视图
系(科): 信息系电子信息工程
班 级: 180932
学 号: 18093207
姓 名: 陶赛年
完成时间: 2012-4-28
南京师范大学中北学院
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
2
一、实验目的
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. 了解聚集索引和非聚集索引的概念。
2. 了解使用Transact-SQL语句CREATE INDEX创建索引的语法。
3. 了解使用SQL Server管理平台创建索引的步骤。
4. 了解Transact-SQL语句DROP INDEX删除索引的用法。
5. 了解创建视图的Transact-SQL语句CREATE VIEW的语法格式及用法。
6. 了解修改视图的Transact-SQL语句ALTER VIEW的语法格式。
7. 了解视图更名的系统存储过程sp_rename的用法。
8. 了解删除视图的Transact-SQL语句DROP VIEW的用法。
三、实验内容
1.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据
库的《学生表》和《课程表》创建主键索引。
(1) 使用SQL Server管理平台为studentsdb数据库的《学生表》和《课程
表》创建主键索引。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
3
(2) 使用Transact-SQL语句为studentsdb数据库的《学生表》和《课程表》
创建主键索引。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
4
2.使用SQL Server管理平台按《课程表》的课程编号列创建唯一性索引。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
5
3.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据
库的《成绩表》的“分数”字段创建一个非聚集索引,命名为《成绩_index》。
(1)使用SQL Server管理平台为studentsdb数据库的《成绩表》的“分数”
字段创建一个非聚集索引,命名为《成绩_index》。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
6
(2)Transact-SQL语句为studentsdb数据库的《成绩表》的“分数”字段
创建一个非聚集索引,命名为《成绩_index》。
4.为studentsdb数据库的《成绩表》的“学号”和“课程编号”字段创建
一个复合唯索引,命名为《成绩表_id_c_ind》。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
7
5.分别使用SQL Server管理平台和系统存储过程sp_helpindex查看《成绩
表》和《学生表》上的索引信息。
(1)使用SQL Server管理平台查看《成绩表》和《学生表》上的索引信息。
(2)使用系统存储过程sp_helpindex查看《成绩表》和《学生表》上的索
引信息。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
8
6.使用SQL Server管理平台的“向导'工具对《成绩表》创建一个聚集索引
和唯一索引。
(1) 对《成绩表》创建一个聚集索引
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
9
(2) 对《成绩表》创建一个唯一索引
7.使用系统存储过程sp_rename将索引《成绩表_index》更名为《成绩表
_ind》。Sp_rename ‘grade.grade_index’,’grade_ind’,’INDEX’
8.分别使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
10
《成绩表_ind》再次使用系统存储过程sp_helpindex查看《成绩表》上的索引信
息。
(1) 使用SQL Server管理平台删除索《成绩表_ind》
(2) 使用Transact-SQL语句DROP INDEX删除索《成绩表_ind》
(3) 使用系统存储过程sp_helpindex查看《成绩表》上的索引信息。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
11
9.在studentsdb数据库中,以《学生表》为基础,使用SQL Server管理平台建立名
为v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。
10.在studentsdb数据库中,使用Transact-SQL语句CREATE VIEW建立一
个名为v_stu _c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用
视图查询学号为’0002'的学生情况。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
12
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
13
11.基于《学生表》、《课程表》和《成绩表》,建立一个名为v_stu_g的视图,
视图中具有所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g查询学
号为0001的学生的所有课程与成绩,如图1-9所示。
图1-9 学号为0001的学生的视图信息
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
14
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
15
12.分别使用SQL Server管理平台和Transact-SQL语句修改视图v_stu_c,
使之显示学号、姓名、每个学生所学课程数目。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
16
13.使用Transact-SQL语句ALTER VIEW修改视图v_stu_i,使其具有列名学
号、姓名、性别。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
17
14.使用系统存储过程sp_rename将视图v_stu_i更名为v_stu_ind。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
18
15.利用视图v_stu_ind为《学生表》。表添加一行数据:学号=0015、姓名=
陈婷、性别=女。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
19
16.利用视图v_stu_ind删除学号为0015的学生记录。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
20
17.利用视图v stu_g修改姓名为刘卫平的学生的高等数学的分数为84。
18.使用Transact_SQL语句DROP VIEW删除视图v_stu_c和v stu_g。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
21
四、实验思考
1.创建一个新表,建一个索引,用SQL Server管理平台各种方法来查索引
文件,结果如何?
2. 是否可以通过视图v_stu_g修改《成绩表》中学号列数据?
不可以。
数据库技术与应用实验 实验5 索引和视图
南京师范大学中北学院
22
因为视图包含了三个个基础表,学生表,课程表,成绩表,且要更改的学号
列为成绩表和学生表的公共列,所以不能通过视图更改对应的基础表的列数据。
3.比较通过视图和基表操作表中数据的异同。
(1)相同点:视图作为一个查询结果与基表具有相似的结构,对视图的操作
与对表的操作一样,通过视图可以完成某些和基础表相同的一些数据操作,如数
据的检索、添加、修改和删除
(2)不同点:视图是一种数据库对象,是从一个或多个表或视图中导出的虚
拟表。视图所对应的数据并不正在地存储在视图中,而是存在其所引用的基表中,
视图的结构和数据是对基表进行查询的结果。