- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库实验报告数据实验报告
实验7 索引和数据完整性的使用
目的与要求
掌握索引的使用方法;
掌握数据完整性的实现方法;
实验准备
了解索引的作用与分类;
掌握索引的创建方法;
理解数据的完整性的概念与分类;
掌握各种数据完整性的实现方法。
实验内容
(1)建立索引
①使用CREATE INDEX语句创建索引。
对YGGL数据库的Employees表中的DepartmentID列建立索引。
在查询分析器中输入如下程序并执行:
USE YGGL
GO
CREATE INDEX depart_ind
ON Employees(DepartmentID)
GO
在Employees表的Name列和Address列上建立复合索引。
CREATE INDEX Ad_ind
ON Employees(Name,Address)
对Departments表上的DepartmentName列建立唯一非聚集索引。
CREATE UNIQUE INEDX Dep_ind
ON Departments(DepartmentName)
【思考与练习】
a.索引创建完后在对象资源管理器中查看表中的索引。
b.了解索引的分类情况
c.使用CREATE INDEX语句能创建主题吗?
d.在什么情况下可以看到建立索引的好处?
②使用界面方式创建索引。
使用界面方式在Employees表的PhoneNumber列上创建索引。
启动SQL Server Management Studio,在对象资源管理器中展开数据库YGGL,展开表Employees,右击“索引,选择“新建索引”选项。在新建索引的窗口中填写索引的名称和类型,单击“添加”按钮,在列表框中选择要创建的索引的列,选择完单击“确定”按钮即完成创建工作。
【思考与练习】
a.使用界面方式创建一个复合索引。
b.在Employees表的表设计窗口选择Address列,右击选择“索引/键”菜单项,在新窗口中的Address列创建一个唯一的索引。
c.创建一个数据量很大的新表,查看使用索引和不使用索引的区别。
(2)重建索引。
重建表Employees中的所有索引。
USE YGGL
GO
ALTER INDEX ALL
ON Employ REBUILD
【思考与练习】重建表Employees中EmployeeID列上的索引。
(3)删除索引。
使用DROP INDEX语句删除表Employees上的索引Depart_ind,计划使用如下SQL语句:
DROP INDEX Depart_ind ON Employees
【思考与练习】
a.使用QROP INDEX一次删除Employees表上的多个索引
b使用界面方式删除Department表上的索引。
(4)数据完整性。
①创建一个表Employees5,只含EmployeesID,Name,Sex和Education列。将Name,设为主键,作为列Name的约束。对EmployeesID列进行UNIQUE约束,并作为表的约束。
CREATE TABLE Employees5
(
EmployeesID char(6)NOT NULL PRIMARY KEY,
Sex tinyint
Education char(4),
CONSTRAINT UK_id UNIQUE(EmployeesID))
CREATE TABLE student
(号码char(6)NOT NULL
性别char(2) Employees
CHECK(性别 IN(“男”,“女”))
CREATE TABLE Salary2
(
EmployeesID char(6) NOT NULL
Income Float NOT NULL,
OUTCOME FLOAT NOT NULL,
CHECK (INCOME=OUTCOME))
【思考与练习】
a.向表中插入数据,查看OUTCOME值比INCOME值大是会有什么情况。
b.创建一个表Employees6,只考虑“学号”和“出生日期”两列,出生日期必须晚于1980年1月1日。
⑤对YGGL数据库中的Employees表进行修改,为其增加“DepartmentID”字段的CHECK约束。
use YGGL
go
alter table Employees
add constraint depart check(DepartmentID=1 and DepartmentID=5)
【思考与练习】测试CHECK约束的有效性。
⑥创建一个规则对象,用以限制输入到该规则所绑定的列中的值只能是该规则中列出的值。
create rule list_rule
as @list in(财务部,研发部,人力资源部,销售部
文档评论(0)