数据库实用技术-实验六.doc
文本预览下载声明
院(系) 计算机学院 专业 计算机科学与技术 班级
姓名 学号 同组人
实验室 S4305 组号 日期
课程 数据库实用技术 指导教师 成绩
实验项目编号 8103203006 实验项目名称 索引和数据的完整性
一、实验目的
掌握索引的使用方法;
掌握数据完整性的实现方法;
二、实验环境
WIN7操作系统 SQL Server2008
三、实验原理(或要求)
了解索引的作用与分类;
掌握索引的创建方法;
理解数据的完整性的概念与分类;
掌握各种数据完整性的实现方法。
四、实验步骤
(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 INDEX Dep_ind
ON Departments(DepartName)
USE YGGL
GO
ALTER INDEX ALL
ON Employees REBUILD
(3)删除索引。
使用DROP INDEX语句删除表Employees上的索引Depart_ind,计划使用如下SQL语句:
DROP INDEX Depart_ind ON Employees
(4)数据完整性。
①创建一个表Employees5,只含EmployeesID,Name,Sex和Education列。将Name,设为主键,作为列Name的约束。对EmployeesID列进行UNIQUE约束,并作为表的约束。
CREATE TABLE Employees5
(
EmployeeID char(6)NOT NULL ,
Name char(10) NOT NULL PRIMARY KEY,
Sex tinyint,
Education char(4),
CONSTRAINT UK_id UNIQUE(EmployeeID)
)
②删除上例中创建的UNIQUE约束。
ALTER TABLE Employees5
DROP CONSTRAINT UK_id
GO
③创建新表student,只考虑“号码”和“性别”两列,性别只能包含男或女。
CREATE TABLE student
( 号码 char(6)NOT NULL,
性别 char(2) NOT NULL,
CHECK(性别 IN(男,女))
)
④创建新表Salary2,结构与Salary相同,但Salary2表不可以OutCome列大于Income列。
CREATE TABLE Salary2
(
EmployeesID char(6) NOT NULL,
Income float NOT NULL,
OUTCOME float NOT NULL,
CHECK (Income=OutCome)
)
⑤对YGGL数据库中的Employees表进行修改,其增加“DepartmentID”字段的CHECK约束。
USE YGGL
GO
ALTER TABLE Employees
ADD CONSTRAINT depart check(DepartmentID=1 AND DepartmentID=5)
⑥创建一个规则对象,用以限制输入到该规则所绑定的列中的值只能是该规则中列出的值。
CREATE RULE list_rule
AS @list in(财务部,研发部,人力资源部,销售部)
GO
EXEC sp_bindrule list_rule,Departments.DepartName
GO
显示全部