SQL实验六:索引和数据完整性的使用

更新时间:2023-10-19 03:09:01 阅读量: 综合文库 文档下载

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

学校代码: 10128 学 号: 201220905048

《数据库原理及应用》课内练习报告 (

题 目:索引和数据完整性的使用 学生姓名:孙跃 学 院:理学院 系 别:数学系

专 业:信息与计算科学 班 级:信计12-2 任课教师:侯睿

二 〇 一 五 年 五 月

一、练习目的

1.掌握索引的使用方法;

2.掌握数据完整性的实现方法。

二、练习内容

1.建立索引; 2.重建索引; 3.删除索引; 4.数据完整性。

三、练习程序及结果

1.建立索引

(1)使用CREATE INDEX语句创建索引

1对YGGL数据库的Employees表中的DepartmentID列建立索引 ○

USE YGGL GO

CREATE INDEX depart_ind ON Employees(DepartmentID) GO

2在Employees表的Name列和Address列上建立复合索引 ○

USE YGGL GO

CREATE INDEX AD_ind

ON Employees(Name,Address) GO

3对Department表上的DepartmentName列建立唯一非聚集索引 ○

USE YGGL GO

CREATE UNIQUE INDEX Dep_ind ON Department(DepartmentName) GO

1

(2)使用界面方式创建索引

2.重建索引

重建Employees中的所有索引

USE YGGL GO

ALTER INDEX ALL

ON Employees REBUILD

3.删除索引

使用DROP INDEX 语句删除表中Employees上索引depart_ind

USE YGGL GO

DROP INDEX depart_ind ON Employees

4.数据完整性

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

2

USE YGGL GO

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) )

(2)删除上例中创建的UNIQUE约束

USE YGGL GO

ALTER TABLE Employees5 DROP UK_id GO

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

USE YGGL GO

CREATE TABLE student (

号码 char(6) NOT NULL, 性别 char(2) NOT NULL CHECK(性别IN ('男','女')) ) GO

3

(4)创建新表Salary2,结构与Salary相同,但Salary2表中不允许OutCome列大于InCome列

USE YGGL GO

CREATE TABLE Salary2 ( ) GO

EmployeeID char(6) NOT NULL, InCome float NOT NULL, OutCome float NOT NULL, CHECK(InCome>=OutCome)

(5)对YGGL数据库中Employees表进行修改,为其增加“DepartmentID”字段的CHECK约束

USE YGGL GO

ALTER TABLE Employees

ADD CONSTRAINT depart CHECK(DepartmentID>=1 AND DepartmentID<=5) GO

4

USE YGGL GO

CREATE RULE list_rule

AS @list IN ('财务部','研发部','人力资源部','销售部') GO

EXEC sp_bindrule 'list_rule','Department.DepartmentName' GO

(6)创建一个规则对象,用以限制输入到该规则所绑定的列中的值只能是该规则中列出的值

(7)创建一个表Salary3,要求所有Salary表上EmployeeID列的值都要出现在Salary表中,利用参照完整性约束实现,要求当删除或修改Salary表上的EmployeeID列时,Salary3表中的EmployeeID值也会随之变化

USE YGGL GO

CREATE TABLE Salary3 (

EmployeeID char(6) NOT NULL PRIMARY KEY, InCome float NOT NULL, OutCome float(8) NOT NULL, FOREIGN KEY (EmployeeID ) REFERENCES Salary(EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE ) GO

5

四、练习总结

本次上机实验,通过对建立索引、重建索引、删除索引和数据完整性等四个部分的操作,让我对索引的使用方法和数据完整性的实现方法进行了进一步的掌握,对课堂所学知识进行了巩固和提高,通过实验我也体会到,数据库上机操作要认真细致,仔细思考才能尽量不出错。

6

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

Top