实验五 索引和数据完整性

更新时间:2024-02-29 04:40:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验五索引和数据完整性

1、目的与要求

(1)掌握索引的使用方法。

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

(1)了解索引的作用与分类。 (2)掌握索引的创建方法。

(3)理解数据完整性的概念及分类。 (4)掌握各种数据完整性的实现方法。 3、实验内容 (1)建立索引。

①使用CREATE INDEX语句创建索引。

A、对YGGL数据库的Employees表中的DepartmentID列建立索引。 在“查询分析器”窗口中输入如下程序并执行。

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

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

【思考与练习】

A、索引创建后在对象资源管理器中查看表的索引。

上面分别创建了Employees表和Department表的索引,在对象资源管理器中的表中将相应的表打开,在“索引”中显示该表中建立的索引。详细结果如上面截图中显示。

B、了解索引的分类情况。

按索引的组织方式能够将索引分为聚集索引和非聚集索引两种类型。 聚集索引将数据行的键值在表内排序并存储对应的数据记录,使得数据表物理顺序与索引顺序一致。

非聚集索引完全独立于数据行的结构。

C、使用CREATE INDEX语句能够创建主键吗?

D、在什么情况下能够看到建立索引的好处?

数据库索引是为了增加查询速度而对表字段附加的一种标识。数据库的索引并不是只有好处或者只有坏处的。当我们的数据库足够大,恰当的建立索引就会大大的提高查询搜索的速度;在这里举个反例,像查询性别这种大量重复的字段时候,是否建立索引是没有多大区别的;还有当表内数据不是很多的时候建立索引也是没有多大意义的,因为索引也是要占用资源的。但是当我们数据库非常大时候,经常进行GROUP BY查询时候,若将GROUP BY字段上建立索引就会很大程度上面较少查询搜索所花费的时间。 ②使用界面方式创建索引。

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

启动SQL Server Managerment Studio,在对象资源管理器中展开数据库YGGL,展开表Employees,右击“索引”,选择“新建索引”选项。在新建索引的窗口中填写索引的名称和类型,单击“添加”按钮,在列框中选择要创建索引的列,选择完单击“确定”按钮即完成创建的工作。

【思考与练习】

A、使用界面方式创建一个复合索引。

B、在Employees表的设计窗口中选择Address列,右击选择“索引/键”菜单项,在新窗口中为Address创建一个唯一索引。

C、创建一个数据量很大的新表,查看使用索引和不使用索引的区别。

(2)重建索引。

重建Employees表中的所有索引。

【思考与练习】

重建表Employees中EmployeeID列上的索引。

(3)删除索引。

使用DROP INDEX语句删除表Employees上的索引depart_ind,使用如下T-SQL语句。

从上面截图中可以显示,之前在Employees表中创建的depart_ind索引已经被删除。

【思考与练习】

A、使用DROP INDEX一次删除Employees表上的多个索引。

B、使用界面方式删除Department表上的索引。 在数据库YGGL中的Department表中打开“索引”,找到表Department表上的索引Dep_ind,右键删除,在弹出的“删除对象”窗口中选择“确定”,删除索引Dep_ind。

(4)数据完整性。

①创建一个表Employees5,只含EmployeeID、Name、Sex和Education列。将Name设为主键,作为列Name的约束。对EmployeeID列进行UNIQUE约束,并将其作为表的约束。

②删除上列中创建的UNIQUE约束。

【思考与练习】

A、使用T-SQL命令创建一个新表,使用一个复合列作为主键,作为表的约束,并为其命令。

B、使用ALTER TABLE语句为表Employees5添加一个新列Address,并未该列定义UNIQUE约束。

C、使用界面方式为一个新表定义主键和UNIQUE约束,并了解如何使用图形向导方式删除主键和UNIQUE约束。

③创建新表student,只考虑“号码”和“性别”两列,性别只能够包含男或女。

【思考与练习】

向该表中插入数据,“性别”列插入“男”和“女”以外字符,查看会发生什么情况?

模拟用户不小心输入汉字错误:

④创建新表Salary2表,结构与表Salary相同,但是表Salary2不允许OutCome大于InCome

本文来源:https://www.bwwdw.com/article/fu1a.html

Top