西安石油大学数据库实验3索引及视图操作

合集下载

数据库视图和索引的创建及使用

数据库视图和索引的创建及使用

数据库视图和索引的创建及使用数据库是一个用于存储和管理数据的系统,它可以通过视图和索引来提高查询和访问数据的效率。

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;```如果没有索引,数据库会遍历整个表来找到与条件匹配的行,如果有索引,数据库可以利用索引的结构来快速定位符合条件的行。

需要注意的是,索引并不适合所有的列和表,创建索引会占用额外的磁盘空间,并且在插入、更新和删除操作时需要维护索引的结构,会影响到数据的修改速度。

实验三 索引和视图

实验三 索引和视图

实验三索引和视图一、实验目的1.掌握利用SSMS和T—SQL语句创建和删除索引的两种方法。

2.掌握利用SSMS和T—SQL语句创建、查询、更新及删除视图的方法。

ssex char(3)constraint ssex_ch check (ssex in('男','女')),sage int not null constraint sage_ch check (sage between 15 and 30),sdept char(10))values('C02','数据结构','C05',2) insert into coursevalues('C03','数据库','C02',2) insert into coursevalues('C04','DB_设计','C03',3)insert into coursevalues('C05','C++',null,3)insert into coursevalues('C06','网络原理','C07',3)create table sc(sno char(5)not null,cno char(5)not null,grade int constraint grade_ch check(grade between 0 and 100),primary key(sno,cno),constraint fk_sno foreign key (sno)references student(sno),constraint fk_cno foreign key (cno)references course(cno))insert into scvalues('S01','C01',92)insert into scvalues('S01','C03',84)insert into scvalues('S02','C01',90)insert into scvalues('S02','C02',94)insert into scvalues('S02','C03',82)insert into scvalues('S03','C01',72)insert into scvalues('S03','C02',90)insert into scvalues('S04','C03',75)2.索引的建立、删除①用SSMS的方式为Student表按Sno(学号)升序建唯一索引②用T—SQL语句为Course表按Cno(课程号)升序建唯一索引,create unique index course_cnoon course(cno asc)③用T—SQL语句为SC表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。

数据库实验报告三索引和数据完整性的使用

数据库实验报告三索引和数据完整性的使用

XI`AN TECHNOLOGICAL UNIVERSITY实验报告实验课程名称数据库原理及应用专业:信息管理与信息系统班级: 130513姓名:贾丹丹学号: 130513117实验学时: 16学时指导教师:杨敏老师成绩:2015 年 11 月 20 日西安工业大学实验报告一、实验目的(1)掌握索引的使用方法。

(2)掌握数据完整性的实现方法。

二、实验步骤、数据记录及处理1.建立索引(1)使用CREATE INDEX 语句创建索引。

对YGGL 数据库的Employees 表中的DepartmentID 列建立索引。

在Employees 表的Name 列和Address 列上建立复合索引。

对Departments 表上的DepartmentName 列建立唯一非聚集索引。

专业 信息管理与信息系统 班级 130513 姓名 贾丹丹 学号 130513117实验课程 数据库原理及应用指导教师杨敏实验日期11.11-11.20同实验者实验项目 索引和数据完整性的使用实验设备及器材SQL Server2012环境(2)使用界面方式创建索引。

使用界面方式在Employees表的PhoneNumber列上创建索引。

2.重建索引重建表Employees中的所有索引。

3.删除索引使用DROP INDEX语句删除表Employees中的索引depart_ind。

4.UNIQUE约束(1)创建一个表Employees5,只含EmployeeID、Name、Sex和Education 列。

将Name设为主键,作为列Name的约束。

对EmployeeID列进行UNIQUE约束,并作为表的约束。

(2)删除上例中创建的UNIQUE约束。

5.CHECK约束(1)创建新表student,只考虑“号码”和“性别”两列,性别只能包含男或女。

(2)创建新表Salary2,结构与Salary相同,但Salary2表不允许OutCome 列大于Income列。

索引和视图实验报告

索引和视图实验报告

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 实验目的1.通过实验进一步理解视图的建立和更新2 实验工具SQL Server 2000利用SQL Server 2000及其交互式查询语言对数据库中的表进行熟练操作。

3 实验内容和要求实验要求建立视图,视图查询,视图更新;实验方法①将实验需求用SQL语句表示;②执行SQL语句;③查看执行结果,如果结果不正确,进行修改,直到正确为止。

实验内容1:(建立视图) 建立计算机系的学生的视图STUDENT_CS。

2:(建立视图) 建立由学号和平均成绩两个字段的视图STUDENT_GR。

3:(视图查询) 利用视图STUDENT_CS,求年龄大于19岁的学生的全部信息。

4:(视图查询) 利用视图STUDENT_GR,求平均成绩为88分以上的学生的学号和平均成绩。

5:(视图更新) 利用视图STUDENT_CS,增加学生('98004','李华','CS','02',20,'女')6:(视图更新) 利用视图STUDENT_CS,将学生年龄增加1岁。

观察其运行结果并分析原因。

7:(视图更新) 利用视图STUDENT_GR,将平均成绩增加2分。

观察其运行结果并分析原因。

8:(视图更新) 删除视图STUDENT_CS中学号为‘96002’的学生的全部数据。

9:(视图更新) 删除视图STUDENT_GR的全部数据。

10:(删除视图) 删除视图STUDENT_CS和STUDENT_GR。

11:(索引建立)为Score表按学号升序和课程号降序分别建立索引,索引名分别为SC_NDXSNO和SC_NDXCNO。

为Score表按分数降序建立索引,索引名为GRADE_NDX12:删除索引SC_NDXSNO4 实验总结①SQL语句以及执行结果;②对重点实验结果进行分析;③实验中的问题和提高;④收获与体会。

数据库 索引、视图的基本操作

数据库  索引、视图的基本操作
课程名称:数据库应用技术项目项目名称:索引、视图的基本操作
姓名:专业:_班级:__学号:_同组成员
一、实验预习部分:
Ⅰ.实验环境准备:
硬件环境:微型计算机
软件环境: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:视图和索引的构建与使用

实验训练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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告
课程名称:学院名称:数据原理与应用计算机学院
专业班级:计1201
学生姓名:张文江
学号:201107010122
实验3 索引及视图操作
一、实验目的
1. 加深对索引和视图概念的理解。

2. 熟练掌握索引的创建和删除。

3. 熟练掌握视图的创建、修改和删除。

4. 熟练运用视图进行各种检索操作。

二、实验环境
硬件环境:PC机
软件环境:操作系统为Microsoft Windows 2000或以上版本。

数据库管理系统为Microsoft SQL Server 2000标准版或企业版。

三、实验内容
1. 熟悉运用SQL Server企业管理器和查询分析器进行索引的创建和删除。

2. 熟悉运用SQL Server企业管理器和查询分析器进行视图的创建、删除和修改。

四、实验步骤
1. 利用实验1已经建立并保存过的学生表、课程表,学生表按学号建立惟一索引,课程表按课程名建立惟一索引;
create index S_sno on S(sno)
create index C_cno on C(cno)
2. 利用实验1已经建立并保存过的学生表和选课表建立一个“网络工程”专业学生成绩视图JSGV(sno,cno,grade);
create view JSGV(sno,cno,grade)
as select S.sno,cno,grade
from SC,S
where dept='网络工程'and S.sno=SC.sno
利用视图JSGV查询“网络工程”专业的学生选课多于2门的学生学号;
select distinct sno
from JSGV
group by sno having (count(*)>2)
验证能否利用视图JSGV中插入一条“网络工程”专业学生选修“高等数学”课程的记录,并查询结果信息;
insert into JSGV values('20080205','c03','85')
删除视图JSGV。

drop view JSGV
3. 利用实验1已经建立并保存过的学生表、课程表、选课表建立视图TOTAL(sno,sname,cname,grade);
create view TOTAL(cno,sname,cname,grade)
as select o,sname,cname,grade
from SC,S,C
where S.sno=SC.sno and o=o
利用视图TOTAL 统计各门课程的选课人数,结果显示课程号、课程名及选课人数。

select cno as 课程号,cname as 课程名, count (*) as 选课人数
from TOTAL
group by cno ,cname
4. 验证能否利用视图TOTAL修改选修了“高等数学”课程的学生的成绩。

1.)修改以前利用视图TOTAL查看选修了“高等数学”课程的学生的成绩。

select sname,grade
from TOTAL
where cname='高等数学'
1.)修改以后利用视图TOTAL查看选修了“高等数学”课程的学生的成绩。

(1)update TOTAL
set grade=grade-2
where cname='高等数学'
(2)select sname,grade
from TOTAL
where cname='高等数学'
五、实验总结要求
经过这次试验学会了如何创建view视图、view视图的索引和view视图的基本操作,和TOTAL 视图的基本操作。

经过这次试验又使我增加了对数据库查询分析器的认识,学会了更多基本技能。

相关文档
最新文档