文档详情

数据库实验报告数据实验报告.doc

发布:2017-01-04约4.16千字共8页下载文档
文本预览下载声明
实验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(财务部,研发部,人力资源部,销售部
显示全部
相似文档