mysql实验五索引和数据完整性_SQL实验六:索引和数据完整性的使用技术报告.doc...

本文档详述了MySQL数据库中关于索引和数据完整性的实践操作,包括创建、重建和删除索引,以及设置主键、唯一性和检查约束等确保数据完整性的方法。通过示例展示了CREATE INDEX、ALTER INDEX、DROP INDEX以及ALTER TABLE语句的应用。
摘要由CSDN通过智能技术生成

(

二 〇 一 五 年 五 月练习目的

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

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

练习内容

1.建立索引;

2.重建索引;

3.删除索引;

4.数据完整性。

练习程序及结果

1.建立索引

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

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

USE YGGL

GO

CREATE INDEX depart_ind

ON Employees(DepartmentID)

GO

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

USE YGGL

GO

CREATE INDEX AD_ind

ON Employees(Name,Address)

GO

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

USE YGGL

GO

CREATE UNIQUE INDEX Dep_ind

ON Department(DepartmentName)

GO

(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约束,并作为表的约束

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

USE YGGL

GO

CREATE TABLE Salary2

(

EmployeeID char(6) NOT NULL,

InCome float NOT NULL,

OutCome float NOT NULL,

CHECK(InCome>=OutCome)

)

GO

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

USE YGGL

GO

ALTER TABLE Employees

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

GO

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

USE YGGL

GO

CREATE RULE list_rule

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

GO

EXEC sp_bindrule 'list_rule','Department.DepartmentName'

GO

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值