文档库 最新最全的文档下载
当前位置:文档库 › 实验2.2 数据表记录的定位、删除与索引

实验2.2 数据表记录的定位、删除与索引

实验2.2 数据表记录的定位、删除与索引
实验2.2 数据表记录的定位、删除与索引

实验2-2 数据表记录的定位、删除与索引

一、实验目的

掌握用数据工作期和命令打开、关闭表的操作;理解记录指针的概念,掌握记录指针的绝对定位、相对定位命令;熟悉函数EOF(),BOF(),RECNO()的使用;掌握表记录的删除操作,理解逻辑删除和物理删除的概念;掌握单项索引文件、结构复合索引文件和非结构复合索引文件的概念及索引文件的建立、打开与使用;理解表使用时的物理顺序和逻辑顺序。

二、实验准备

预习表记录指针的定位方法;理解表记录的各种删除概念与操作;预习排序和索引的概念及相关操作,主要包括:什么是排序;什么是单项索引文件,它是如何建立及打开的,它与表文件的关系;什么是复合索引文件(包括结构复合索引文件和非结构复合索引文件),他们与单项索引文件有什么区别?是如何建立及打开的,它们与表文件的关系;确定主控索引的意义。

班级14国贸1

学号140108100421

姓名张懿慧

三、实验内容

1.表文件的打开、关闭操作

用数据工作期同时打开“职工”、“销售”和“商品”三个表文件,然后关闭其中的两个文件。

用USE打开、关闭“职工”、“销售”和“商品”表文件,在数据工作期观察打开的情况。

2.移动及测试记录指针

以三个数据表文件为基础,熟悉表记录指针的移动方法以及表处理的常用函数。当执行LIST、DISPLAY、GO、SKIP等语句后,测试EOF()、BOF()、RECNO()等函数的值,特别注意当文件指针在表文件的首记录、末记录和文件头、文件尾时,测试函数的返回值。在命令窗口输入如下命令(注意输入一条命令要键入回车键),并在有?处记录下命令的执行结果。

USE 职工

GO 5

?RECNO() 回答:5

SKIP 3

?RECNO() 回答:8

GO BOTTOM

?RECNO(),EOF() 回答:10;.F.

SKIP

?RECNO(),EOF() 回答:11;.T.

GO TOP

?RECNO(),BOF() 回答:1;.F.

SKIP -1

?RECNO(),BOF() 回答:1;.F.

?FCOUNT( ) 回答:9

?RECCOUNT( ) 回答:10

USE 销售

?FCOUNT( ) 回答:3

?RECCOUNT( ) 回答:10

3.对表文件的记录进行显示和简单的编辑

(1)显示“职工”表的前三条记录,再显示最后三条记录。

回答:(写出正确的命令,下同)

USE 职工

GO 1

GO BOTTOM

SKIP -2

LIST REST

(2)将“职工”表中所有基本工资大于2000的已婚女职工,其基本工资在原有基础上调10%,并用DISPLAY命令显示修改前后的记录。

回答:

DISOLAY FOR 婚否=.T..AND.性别=”女”.AND.基本工资>2000

EPLACE 基本工资 WITH 基本工资*1.1 FOR婚否=.T..AND.性别=”女”.AND.基本工资>2000

(3)在命令窗口设置SET DELETED ON,逻辑删除职工表中在1978年以后出生的女职工记录,用LIST命令显示结果,再将打上删除标记的记录恢复,并用DISPLAY命令检查恢复是否正确。

回答:

SET DELETED ON

DELETE FOR 出生日期> ({^1978-01-01} .AND. 性别=’女’

List

RECALL FOR 出生日期> ({^1978-01-01} .AND. 性别=’女’

BROWSE LAST

DISPLAY FOR出生日期> ({^1978-01-01} .AND. 性别=’女’

(4)在命令窗口设置SET DELETED OFF,将第(3)题再做一遍,注意结果有什么不一样。

回答:

SET DELETED OFF

DELETE FOR 出生日期> ({^1978-01-01} .AND. 性别=’女’

List

RECALL FOR 出生日期> ({^1978-01-01} .AND. 性别=’女’

DISPLAY FOR出生日期> ({^1978-01-01} .AND. 性别=’女’

4.有一个工资表文件,其表结构及记录如表2-14和表2-15所示,用REPLACE 命令计算每位职工的应发金额和实发金额。

回答:USE 工资

Replace ALL 应发工资 WITH 基本工资+岗位津贴+其他发款

REPLACE ALL 实发工资 WITH 基本工资+岗位津贴+其他发款-其他扣款 LIST

表2-15 工资.DBF 的数据

5.建立排序文件

(1)单字段排序:将职工表按照出生日期的升序排列显示。

回答:

USE 职工

LIST

SORT TO 职工出生日期升序 ON 出生日期 /A

USE 职工出生日期升序

LIST

(2)多字段排序:将职工表按性别排序,性别相同的情况下再按基本工资的升序排列。 表2-14 工资.DBF 的结构

USE 职工

SORT ON 性别,基本工资 /A TO zgxbgz

USE zgxbgz

LIST

6.建立单项及复合索引文件

(1)建立单项索引文件,按职工表的基本工资字段的逻辑顺序排列。回答:

USE 职工

INDEX on 基本工资 to zggz

LIST

(2)建立单项索引文件,按出生日期的逻辑顺序排列。

回答:

USE 职工

INDEX on 出生日期 to zgrq

LIST

(3)建立结构复合索引文件的索引标识,按姓名的升序索引。

回答:

USE 职工

INDEX ON 姓名 TAG zgxm1

LIST

(4)建立结构复合索引文件的索引标识,按出生日期的降序索引。

USE 职工

INDEX ON 出生日期 TAG zgrq2 DESCENDING

LIST

(5)建立非结构复合索引文件的索引标识,按出生日期的升序排列。

回答:

USE 职工

INDEX on 出生日期 Tag csrq of FJG

LIST

(6)建立非结构复合索引文件的索引标识,按基本工资、出生日期的升序索引。

回答:

USE 职工

INDEX on STR(基本工资,6,2)+DTOS(出生日期) TAG zggzrq of FIG

LIST

(7)用一条命令打开所有的索引文件,并确定主索引文件或标识,在屏幕上显示索引结果。

回答:USE 职工

SET INDEX TO zggz, zgrq, 职工, fjg

SET ORDER TO zggz

LIST

(8)建立一个单项索引文件,使其按照基本工资降序排列。

USE 职工

INDEX on 3000-基本工资 to zggz2

LIST

(9)利用表设计器对建立的索引标识情况进行检查。

四、实验2-2报告

1.通过上述实验,请回答下列问题

(1)LIST ________=DISPLAY,而DISPLAY________=LIST。

回答:recno();all

(2)执行了LIST命令后,EOF()=_____。

回答:.T.

(3)执行了GO TOP命令后,BOF()=.T.,对吗?为什么?

回答:不对;GO TOP之后指针只是指到了首记录而非文件头,而BOF()是表头测试函数,因此应该BOF()=.F.

(4)如何用LIST/DISPLAY命令显示备注字段内容?

回答:用LIST /DISPLAY ALL命令显示备注型字段内容

(5)你认为用REPLACE对表文件记录进行修改,与用BROWSE命令修改有什么不同?

回答:BROWSE是显示文件记录然后对文件记录进行修改,REPLACE直接对文件记录进行修改,而且REPLACE可以批量修改

(6)SET DELETED ON/OFF语句对被逻辑删除的记录有何影响?

回答:使用SET DELETED ON 对逻辑删除标志有效,删除标记的记录不参与处理。使用SET DELETED OFF对逻辑删除标志无效,删除标记的记录参与处理。

(7)通过实验,请你归纳当EOF()为.T.时,RECNO()为多少?当BOF()为.T.时,RECNO()为多少?

回答:11和1

(8)用SORT命令建立排序文件后,紧接着用LIST命令却看不到排序结果,为什么?

回答:用SORT命令建立排序文件后,会产生一个新表,排序内容在新建的新表里,要USR 新表再LIST浏览

(9)建立索引文件时,有一个可选参数[UNIQUE],它有什么意义?你能举例说明吗?

回答:当多个记录的<索引表达式>值相同时,只有其中第一个记录的值记入索引文件。例一:INDEX ON 婚否 TAG HF OF FJG UNIQUE &&按婚否建唯一索引标识HF加到非结构复合索引文件FJG.cdx中

(10)请总结一下表的排序与表索引有什么不同。

回答:不同: 1.建索引是在系统中建立一个索引表,在查找记录的时候可以通过这个表迅速找到。排序是将表在系统中按一个键值的进行的,改变了记录的物理顺序。 2.排序后会产生一个新表,其记录按新的顺序重新编排记录,而原文件保持不变。索引文件是表文件的辅助文件,必须和表文件同时使用。 3.由于索引表是按关键字进行的逻辑排序,且只有两个字段,因此大大提高了排序速度,而且只占用了很小的存储空间。

2.实验完成情况及存在问题

SQL-Serve实验5-索引和视图-

SQL-Serve实验5-索引和视图-

实验5 索引和视图 1.实验目的 (1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引的方法。 (2)掌握使用SQL Server管理平台查看索引的方法。(3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引的方法。 (4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。 (5)了解索引和视图更名的系统存储过程sp_rename的用法。 (6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。 (7)了解删除视图的Transact-SQL语句DROP VIEW的用法。 2.实验内容及步骤 (1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。 使用SQL Server管理平台:

a. b. c. d.

e. 使用Transact-SQL语句: (2)使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。

(3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。 使用SQL Server管理平台: 使用SQL语句: use studentsdb go create index grade_index on grade (分数) (4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。 create index grade_id_c_ind on grade (学号,课程编号)

实验5 索引和视图

数据库技术与应用 实验报告 实验名称:实验五:索引和视图 系(科):信息系电子信息工程 班级: 180932 学号: 18093207 姓名:陶赛年 完成时间: 2012-4-28 南京师范大学中北学院

一、实验目的 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数据库的《学生表》和《课程表》创建主键索引。

实验四 索引和视图参考答案

索引 --为表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)

实验三 索引和视图

实验三索引和视图 一、实验目的 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 course values('C03','数据库','C02',2) insert into course

values('C04','DB_设计','C03',3) insert into course values('C05','C++',null,3) insert into course values('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 sc values('S01','C01',92) insert into sc values('S01','C03',84) insert into sc values('S02','C01',90) insert into sc values('S02','C02',94) insert into sc values('S02','C03',82) insert into sc values('S03','C01',72) insert into sc values('S03','C02',90) insert into sc values('S04','C03',75) 2.索引的建立、删除 ①用SSMS的方式为Student表按Sno(学号)升序建唯一索引

视图与索引作业

视图与索引作业 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

第一部分 创建如下表:并向每张表中添加5条数据 学生表t_student(f_no,f_name,f_sex,f_department) 课程表(f_id,f_name) 成绩表(f_no,f_subjectid,f_score) 作业: 1、对成绩表的课程编号创建非簇索引 2、对学生表的姓名和年龄创建非簇索引 3、对学生表的学号创建唯一索引 4、创建视图统计成绩表中任何一门课程及没有及格的信息 5、创建视图查询男生的平均成绩 6、对课程表的课程编号和分数创建非簇索引 7、将上题中的非簇索引删除 8、创建视图查询C#课程不及格的女生信息 9、创建视图统计男女生的平均分信息 10、简述索引的作用和种类 11、简述视图的作用 第二部分 使用northwind数据库完成: 1)在northwind库中(products和suppliers表中)查找每个商品对应的供 应商名称建立视图my_view,并通过该视图查询数据。 2)在视图my_view中,将companyname为以tokyo开头的改为ToKyo.使 用修改表数据的UPDATE语句。 3)使用DROP VIEW语句将视图my_view删除。 4)使用Northwind数据库,在Suppliers表的Country列和city列上创建一 个名为Country_index的非聚集索引。 5)删除Country_index索引。 6)在Suppliers表的Country列和city列上创建一个名为Country_index的 非聚集索引。请确保索引页留有50%的空白空间,并且删除具有相同 名称的现有索引 7)使用CREATE VIEW语句,基于employees表创建一个名为EmpHierarchy 的视图。视图应包含有上级领导的雇员的雇员ID、名、姓及其上级的 姓

数据库原理实验报告实验四视图与索引

数据库原理实验报告实验 四视图与索引 The Standardization Office was revised on the afternoon of December 13, 2020

一、实验内容、步骤以及结果 1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。(5分) 2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ)(10分,每种方法5分)。 --第一种方法 CREATE VIEW V_SPJ AS SELECT sno,pno,qty FROM SPJ WHERE jno=( SELECT jno FROM J WHERE jname ='三建' ); GO --删除建好的视图 DROP VIEW V_SPJ; GO --第二种方法 CREATE VIEW V_SPJ AS

SELECT sno,pno,qty FROM SPJ,J WHERE=AND='三建'; 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中的任意一条数据的供应数量。

视图和索引(数据库实验4)

. . . 数据库基础与实践实验报告实验四视图和索引 班级:惠普测试142 学号:1408090213 :闫伟明 日期:2016-11-13

1 实验目的: 1)掌握SQL进行视图创建的方法; 2)掌握SQL进行视图更新的方法,理解视图更新受限的原因; 3)掌握SQL进行索引创建及删除的方法。 2 实验平台: 操作系统:Windows xp。 实验环境:SQL Server 2000以上版本。 3 实验容与步骤 利用实验一创建的sch_id数据库完成下列实验容。 1.定义视图V_TCS(定义时不加with check option),存放全部计算机系老师的信息。 视图定义代码: CREATE VIEW V_TCS AS SELECT tno,tn,sex,age,prof,sal,comm,T.dno FROM T,D WHERE T.dno=D.dno AND D.dn='计算机' 视图查询语句与查询结果截图: SELECT*FROM V_TCS 2.定义视图V_sal,存放全体教师的教师号,教师,教师酬金(工资+岗位津贴),职称信息。视图定义代码: CREATE VIEW V_sal AS

SELECT tno教师号,tn教师,sal+comm教师酬金,prof支撑信息 FROM T 视图查询语句与查询结果截图: SELECT*FROM V_sal 3.向V_TCS中插入一条计算机专业教师的新记录,并查询V_TCS视图的全部记录。视图更新代码: INSERT INTO V_TCS SELECT'T10','良瑗','女',20,'讲师',6000,8000,D.dno FROM D WHERE D.dn='计算机'

实验训练4:视图和索引的构建与使用

数据库原理实验报告-实验四-视图与索引《数据库原理》实验报告 题目:实验四 视图与索引 一、实验内容、步骤以及结果 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触发器实现。

实验5 索引和视图

实验5 索引和视图 一、实验目的 1.掌握索引的使用方法 2.掌握数据完整性的实现方法 3.熟悉视图的概念和作用 4.掌握视图的创建方法 5.掌握如何查询和修改视图 二、实验准备 1.了解索引的作用与分类 2.掌握索引的创建方法 3.了解视图的概念 4.了解创建视图的方法 5.了解对视图的操作 三、实验内容及要求 1.创建索引 1)在Employees表的Name列和Address列上建立复合索引。 2)对Departments表上的DepartmentName列建立唯一性索引。 3)使用CREATE INDEX语句能创建主键吗? 4)向Employees表中的出生日期列添加一个唯一性索引,姓名列和性别 列上添加一个复合索引。 5)假设Departments表中没有主键,使用ALTER TABLE语句将 DepartmentID列设为主键。 6)添加主键和添加普通索引有什么区别? 7)创建与Departments表相同结构的表Departments1,将 DepartmentName设为主键,DepartmentsID上建立一个索引。 2.删除索引 1)使用DROP INDEX语句删除表Employees上的索引depart_ind。 2)使用ALTER TABLE语句删除Departments上的主键和索引Dep_ind。 3.创建视图 1)创建YGGL数据库上的视图DS_VIEW,视图包含Departments表的全 部列。 2)创建YGGL数据库上的视图Employees_view,视图包含员工号码、姓 名和实际收入。 4.查询视图 1)从视图DS_VIEW中查询出部门号为3的部门名称。 2)从视图Employees_view查询出姓名为“王林”的员工的实际收入。 5.更新视图 1)向视图DS_VIEW中插入一行数据:6,广告部,广告业务。 2)执行完该命令使用SELECT语句分别查看视图DS_VIEW和基本表 Departments中发生的变化。 3)尝试向视图Employees_view中插入一行数据,看看会发生什么情况。 4)修改视图DS_VIEW,将部门号为5的部门名称修改为“生产车间”。 5)执行完该命令使用SELECT语句分别查看视图DS_VIEW和基本表

实验5索引和视图

1.实验目的 (1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引的方法。 (2)掌握使用SQL Server管理平台查看索引的方法。 (3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引的方法。 (4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。 (5)了解索引和视图更名的系统存储过程sp_rename的用法。 (6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。 (7)了解删除视图的Transact-SQL语句DROP VIEW的用法。 2.实验内容及步骤 (1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。 (2)使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。 (3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的grade 表的“分数”字段创建一个非聚集索引,命名为grade_index。 CREATE INDEX grade_index ON grade(分数) (4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。 CREATE UNIQUE INDEX grade_id_c_ind ON grade(学号,课程编号) (5)分别使用SQL Server管理平台和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。 sp_helpindex grade (6)使用SQL Server管理平台对grade表创建一个聚集索引和唯一索引。 (7)使用系统存储过程sp_rename将索引grade_index更名为grade_ind。 sp_rename 'grade.grade_index','grade_ind','INDEX' (8)分别使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引grade_ind。再次使用系统存储过程sp_helpindex查看grade表上的索引信息。 DROP INDEX grade.grade_ind (9)在studentsdb数据库中,以student_info表为基础,使用SQL Server管理平台建立

索引和视图实验报告

7-1编程在teaching 数据库中的student 表的sname 列上创建唯一索引 IDX_sname。 USE teaching GO CREATE UNIQUE INDEX IDX_sname ON student(sname) 7-2 编程在teaching数据库中的student表的studentno和classno列上创建组合索引IDX_sc。 USE teaching IF EXISTS(SELECT name FROM sysindexes WHERE name='IDX_sc') DROP INDEX student.sc GO CREATE INDEX IDX_sc ON student(studentno,classno) 7-3 重新组织teaching 数据库中student 表上的IDX_sc 索引。 USE teaching ALTER INDEX IDX_sc ON dbo.student REORGANIZE 7-4 重新生成teaching 数据库中student 表上的IDX_sname 索引,设置填充索引,将填充因子设置为80%,设置将中间排序结果存储在tempdb中。 USE teaching ALTER INDEX IDX_sname ON dbo.student REBUILD WITH(PAD_INDEX =ON,FILLFACTOR= 80,SORT_IN_TEMPDB =ON) 7-5 重新生成teaching 数据库中student 表上的C_studentno 索引,将其修改为聚集唯一索引,并指定该索引的叶级页的填充度为70%。 USE teaching GO CREATE UNIQUE CLUSTERED INDEX C_studentno ON dbo.student(studentno) WITH(PAD_INDEX =ON,FILLFACTOR= 70,DROP_EXISTING =ON)

SQL Serve实验5_索引和视图_..

实验5 索引和视图 1.实验目的 (1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引的方法。 (2)掌握使用SQL Server管理平台查看索引的方法。 (3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引的方法。 (4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。 (5)了解索引和视图更名的系统存储过程sp_rename的用法。(6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。 (7)了解删除视图的Transact-SQL语句DROP VIEW的用法。2.实验内容及步骤 (1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。 使用SQL Server管理平台:

a. b. c. d.

e. 使用Transact-SQL语句: (2)使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。

(3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。 使用SQL Server管理平台: 使用SQL语句: use studentsdb go create index grade_index on grade (分数) (4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。 create index grade_id_c_ind on grade (学号,课程编号)

实验七 索引与视图实验

实验七索引与视图实验 一、实验目的及要求 本实验目的是掌握视图和索引的两种创建方式,并掌握视图的使用,理解索引的优点。基本要求包括: ●理解视图与基本表的区别。 ●掌握通过管理器和SQL进行视图的定义、修改和删除方法。 ●掌握通过管理器和SQL进行索引的定义和删除方法。 ●理解索引的功能及类型。 ●理解通过视图对基本表的修改。 二、实验原理及背景知识 (一)了解视图的知识 1、视图的概念与实质 视图是一种虚表,具有表的外观和部分特征,但是视图的实质是一组SELECT语句构成的SQL语句。对视图的修改都会转换为对基本表的修改,但不是所有的视图都可以修改的。 2、创建视图的SQL语法格式 CREATE VIEW view_name AS SELECT语句 WITH CHECK OPTION 其中WITH CHECK OPTION选项表示强制视图上执行的所有数据修改语句都必须符合由SELECT语 句设置的准则。 (二)了解索引的知识 1、理解索引的作用 索引是用来加快数据查询速度的一种对象。索引的维护需要耗费一定资源,因此索引不是越多越好,一般经常查询的列才创建索引,经常修改的表一般不创建索引。 2、了解索引的类型 聚簇索引:索引顺序跟数据物理存储顺序一致,每个表至多有一个聚簇索引。 唯一性索引:这种索引要求字段的值是唯一的,不能重复,但可以为空。 组合索引:建立在组合字段上的创建索引。 3、创建索引的语句格式 CREATE [UNIQUE]|[ CLUSTERED] INDEX index_name ON table_name(colum_name [ASC/DESC][,colum_name[ASC/DESC]]......) 4、创建非主键聚簇索引 在SQL Server 2005中,会自动在主键上创建聚簇索引。如果需要在非主键上创建聚簇索引,则首先要删除主键约束,再重新创建非聚簇索引的主键约束,最后再在其他字段上创建聚簇索引。

实验9 视图与索引_答案

实验9 视图与索引 1.实验目的 (1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW 创建视图、ALTER VIEW 修改视图的用法。 (2)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX 创建索引、查看索引、DROP INDEX删除索引的方法。 (3)了解删除视图的Transact-SQL语句DROP VIEW的用法。 (4)了解索引和视图更名的系统存储过程sp_rename的用法。 2.实验内容及步骤 请先附加studentsdb数据库,然后完成以下实验。 (1)student_info表为基础,使用SQL Server管理平台建立名为 v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。 go create view v_stu_i as select姓名,性别,家庭住址 from student_info; (2)使用Transact-SQL语句CREATE VIEW建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为 '0003'的学生情况。 答: go create view v_stu_c as select a.学号,a.姓名,b.课程编号 from student_info a inner join grade b on a.学号=b.学号; (3)基于student_info表、curriculum表和grade表,建立一个名为 v_stu_g的视图,视图中具有所有学生的学号、姓名、课程名称、分数。答:go

create view v_stu_g as select a.学号,a.姓名,c.课程名称,b.分数 from student_info a inner join grade b on a.学号=b.学号 inner join curriculum c on b.课程编号=c.课程编号 (4)使用视图v_stu_g查询学号为'0001'的学生的所有课程与成绩,效果 如下图所示。 答:select*from v_stu_g where学号='0001' (5)分别使用SQL Server管理平台和Transact-SQL语句修改视图v_stu_c,使之显示学号、姓名、每个学生所学课程数目。 答: --方式一,利用子查询 select学号,姓名, (select count(*)from grade b where b.学号=a.学号) as 所学课程数目from student_info a --方式一,利用左外连接 select a.学号,姓名,b.所学课程数目 from student_info a left join (select学号,count(distinct课程编号)as所学课程数目 from grade group by学号) b on a.学号=b.学号 (6)使用Transact-SQL语句ALTER VIEW修改视图v_stu_i,使其具有列 名学号、姓名、性别。 答: alter view v_stu_i as select学号,姓名,性别from student_info; go (7)使用系统存储过程sp_rename将视图v_stu_i更名为v_stu_info。

索引和视图实验答案

《索引和视图》实验 一、实验目的与要求 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 2003 2、数据库管理系统:SQL Server 2005 三、实验内容 1.分别使用SQL Server管理平台和Transact-SQL语句为教务管理系 统数据库的《学生信息》和《课程信息》创建主键索引。 (1) 使用SQL Server管理平台为教务管理系统数据库的《学生信息》和《课程信息》创建主键索引。

(2) 使用Transact-SQL语句为教务管理系统数据库的《学生信息》和《课程信息》创建主键索引。 USE教务管理系统 GO create unique nonclustered index学生信息_idx on学生信息(学号) GO USE教务管理系统 GO create unique nonclustered index课程信息_idx on课程信息(课程编号) GO 2.使用SQL Server管理平台按《课程信息》的课程编号列创建唯一 性索引。

数据库实验5 索引和视图(答案)

实验5 索引和视图 学号:18103317 专业:电子信息工程 一、实验内容 1.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的《学生表》和《课程表》创建主键索引。 2.使用SQL Server管理平台按《课程表》的课程编号列创建唯一性索引。 3.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的《成绩表》的“分数”字段创建一个非聚集索引,命名为《成绩_index》。 CREATE INDEX 成绩_index ON 成绩表(分数) 4.为studentsdb数据库的《成绩表》的“学号”和“课程编号”字段创建一个复合唯索引,命名为《成绩表_id_c_ind》。 CREATE UNIQUE INDEX 成绩表_id_c_ind ON 成绩表(学号,课程编号) 5.分别使用SQL Server管理平台和系统存储过程sp_helpindex查看《成绩表》和《学生表》上的索引信息。 6.使用SQL Server管理平台的“向导'工具对《成绩表》创建一个聚集索引和唯一索引。 7.使用系统存储过程sp_rename将索引《成绩表_index》更名为《成绩表_ind》。 Sp_rename ‘grade.grade_index’,’grade_ind’,’INDEX’ 8.分别使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索《成绩表_ind》再次使用系统存储过程sp_helpindex查看《成绩表》上的索引信息。 DROP INDEX grade.grade_ind 9.在studentsdb数据库中,以《学生表》为基础,使用SQL Server管理平台建立名为v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。

实验三 索引和视图讲解

徐龙琴、刘双印设计制作实验三索引和视图 实验三索引和视图 一、实验目的 1.掌握利用SSMS和T—SQL语句创建和删除索引的两种方法。 2.掌握利用SSMS和T—SQL语句创建、查询、更新及删除视图的方法。

语句建立该数据库不能为空值,数数数 ) ) '21',,'自动化'',王建平( Student insertintovalues'S01',''男') 刘华( Student insertintovalues'S02',''自动化'19'女',,''', ) '18',,''计算机'',范林军,( Student insertintovalues'S03'''女) ( Student insertintovalues'S04''19''','李伟'男,,'数学',) '18',数学,'''男','黄 河,'S05'( Student into insertvalues' )'数学','20','男','长江','S06'(values Student into insert 徐龙琴、刘双印设计制作实验三索引和视图

Course table create( , key primary)(char Cno 4 null, not 10 (char Cname ) 10(char) Cpno

)2(char Credit , ). 徐龙琴、刘双印设计制作索引和视图实验三 ) '4'NULL,'英语',insert into Course values('C01',) '2'','C05 ',into Course values('C02','数据结构insert) '2''C02','values('C03','数据 库,intoinsert Course ) '3''C03','DB_'C04',设计',insert into Course values() '3'NULL, 'C05'(,'C++',insert into Course values) ,'3'','C07',insert into Course values('C06''网络原理) '3''C05','C07'(,'操作系统',intoinsert Course values

实验: 索引和视图

实验4索引和视图 1.实验目的 (1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引的方法。 (2)掌握使用SQL Server管理平台查看索引的方法。 (3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引的方法。(4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。 (5)了解索引和视图更名的系统存储过程sp_rename的用法。 (6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。 (7)了解删除视图的Transact-SQL语句DROP VIEW的用法。 2.实验内容及步骤 请先附加studentsdb数据库,然后完成以下实验。 (1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。 答: (2)使用SQL Server管理平台按curriculum表的'课程编号'列创建唯一性索引。 (3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的grade表的'分数'字段创建一个非聚集索引,命名为grade_index。 答: (4)为studentsdb数据库的grade表的'学号'和'课程编号'字段创建一个复合唯一索引,命名为grade_id_c_ind。 答: (5)分别使用SQL Server管理平台和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。 答: (6)使用SQL Server管理平台对grade表创建一个聚集索引和唯一索引。 (7)使用系统存储过程sp_rename将索引grade_index更名为grade_ind。 答: (8)分别使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引 grade_ind。再次使用系统存储过程sp_helpindex查看grade表上的索引信息。 答: (9)在studentsdb数据库中,以student_info表为基础,使用SQL Server管理平台建立名为v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。 (10)在studentsdb数据库中,使用Transact-SQL语句CREATE VIEW建立一个名为 v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号, 并利用视图查询学号为'0003'的学生情况。 答: (11)基于student_info表、curriculum表和grade表,建立一个名为v_stu_g的视图,视图中具有所有学生的学号、姓名、课程名称、分数。 使用视图v_stu_g查询学号为'0001'的学生的所有课程与成绩,如图-9所示。

视图和索引(数据库实验4)

数据库基础与实践实验报告实验四视图与索引 班级:惠普测试142 学号:1408090213 姓名:闫伟明 日期:2016—11-13

1实验目得: 1)掌握SQL进行视图创建得方法; 2)掌握SQL进行视图更新得方法,理解视图更新受限得原因; 3)掌握SQL进行索引创建及删除得方法、 2 实验平台: 操作系统:Windows xp。 实验环境:SQL Server 2000以上版本。 3实验内容与步骤 利用实验一创建得sch_id数据库完成下列实验内容。 1.定义视图V_TCS(定义时不加withcheck option),存放全部计算机系老师得信息。 视图定义代码: CREATE VIEWV_TCSAS ?SELECTtno,tn,sex,age,prof,sal,comm,T.dno FROMT,D WHERET、dno=D.dno AND D.dn=’计算机' 视图查询语句与查询结果截图: SELECT*FROMV_TCS 2.定义视图V_sal,存放全体教师得教师号,教师姓名,教师酬金(工资+岗位津贴),职称信息。视图定义代码: CREATEVIEWV_sal AS SELECTtno教师号,tn教师姓名,sal+comm教师酬金,prof支撑信息 FROMT

视图查询语句与查询结果截图: SELECT*FROMV_sal 3.向V_TCS中插入一条计算机专业教师得新记录,并查询V_TCS视图得全部记录。视图更新代码: INSERTINTOV_TCS SELECT'T10','良瑗’,'女’,20,'讲师',6000,8000,D.dno FROM D ?WHERED。dn='计算机' 视图查询语句与查询结果截图: SELECT*FROM V_TCS

数据库实验报告:视图 和索引

一、实验步骤 (一)附加上次实验所创建的数据库“db_Library”,并回顾该数据库的数据表信息。(二)练习创建和管理视图 1、使用管理控制台创建一个名为“计算机系借阅信息_VIEW”的视图,要求显示计算机系读者2011-1-1以后借阅的图书信息,包括“读者姓名”、“图书编号”和“借阅日期”三个字段。 打开sql server管理控制台窗口,打开新建视图对话框。在添加表中添加tb_borrow和 tb_reader表,在选中输出复选框中选中:读者编号,图书编号,借阅日期。 use db_library go select * from 读者借阅信息_VIEW where 所在系='计算机'and 借阅日期>'2011_1_1' 2、使用T-SQL语句创建一个名为“读者借阅信息_VIEW”的视图,要求显示所有的读者借阅信息,包括“读者编号”、“姓名”、“系部”、“图书编号”、“图书名称”和“借阅日期”等字段。 use db_library go create view 读者借阅信息_VIEW as select tb_readder.读者编号,tb_reader.姓名,tb_reader所在系,tb_book.图书编 号,tb_book.书名,tb_borrow.借阅日期 from tb_reader,tb_borrow,tb_book where tb_reader.读者编号=tb_borrow.读者编号and tb_book.图书编号=tb_borrow.图书编号 Select * from读者借阅信息_VIEW 3、使用管理控制台查看“读者借阅信息_VIEW”视图的定义信息和依赖的对象。 打开管理控制台,在数据库“db_Library”下的“视图”对象;在左边窗口右击“读者借阅息_VIEW”该视图,在在窗口中选中“查看依赖关系”选项。 4、使用系统存储过程查看“计算机系续借阅信息_VIEW”视图的定义信息和依赖的对象。use db_library go sp_helptext读者借阅信息_VIEW _ sp_depends 读者借阅信息_VIEW 5、使用管理控制台修改“计算机系借阅信息_VIEW”视图,要求显示计算机系或外语系读者2011-1-1以后借阅的图书信息,包括“读者姓名”、“所在系”、“图书编号”和“借阅日期”四个字段。 打开管理控制台,右击“读者借阅信息_VIEW”视图,选择修改,在弹出的复框中选择 “tb-reader, tb_borrow表,选择“读者姓名”、“所在系”、“图书编号”和“借阅日期”四个字段,在所在系里选中计算机系和外语系,并保存该修改。 6、修改“计算机系借阅信息_VIEW”视图的名称为“计算机外语借阅信息_VIEW”。

相关文档
相关文档 最新文档