返回本章首页上一页 下一页
第 7章 索引及约束
7.1 索 引
7.2 约 束
上一章 返回目录
返回本章首页上一页 下一页
7.1 索 引
一、索引基础知识
二、建立和管理索引
三、索引相关操作
返回本章首页上一页 下一页
一、索引基础知识
1、索引:类似书中的目录,加快查询速度。
2、复合索引:基于两列或多列组合而建立的索引。
3、唯一索引:表中任意两行被索引的列不允许出
现重复值。
4、聚集索引:改变表的物理排序,只能有 1个,
即主键索引。
5、非聚集索引:不影响表的物理排序,可有多个。
6、索引的作用:按索引列查询。
返回本章首页上一页 下一页
二、建立和管理索引
1,使用企业管理器创建索引
例如:在 XK数据库中的 Student表上创建基于
StuName列, 名为 IX_StuName的非聚集索引 。
① 在控制台中展开 XK数据库, 单击表;
② 右击 Student表, 选, 设计表, ;
③ 单击工具栏上, 表和索引属性, 按钮, 在, 属性,
对话框中选, 索引/键, ;
④ 单击, 新建, 按钮;
返回本章首页上一页 下一页
⑤ 给出索引名称;
⑥选择要建立索引的列;
⑦并选择“顺序”;
⑧创建唯一索引 —— UNIQUE;
⑨创建聚集索引 —— CLUSTERED
⑩ 关闭对话框,并单工具栏上的“保存”按钮。
返回本章首页上一页 下一页
2、使用 SQL语句创建索引
命令格式:
CREATE [ UNIQUE ] [ CLUSTERED ]
INDEX 索引名 ON 表名(列名)
例,USE XK
CREATE UNIQUE CLUSTERED
INDEX IX_StuNoCouNo
ON Stucou(StuNo,CouNo)
返回本章首页上一页 下一页
三、索引相关操作
1、删除索引
?使用企业管理器
① 在控制台中展开 XK数据库, 单击表;
② 右击 Student表, 选, 设计表, ;
③ 单击工具栏上, 表和索引属性, 按钮, 在
,属性, 对话框中选, 索引/键, ;
④ 单击, 删除, 按钮;
返回本章首页上一页 下一页
? 使用 SQL语句
格式:
DROP INDEX 表名,索引名
例:删除上例建立的索引
USE XK
GO
DROP INDEX StuCou.IX_StuNoCouNo
返回本章首页上一页 下一页
2、显示索引信息
?在企业管理器中,创建索引对话框中的“选
定的索引”下拉列表中选择其中一个索引即可。
?使用权系统存储过程 SP_HELPINDEX
USE XK
GO
EXEC SP_HELPINDEX Student
GO
返回本章首页上一页 下一页
3、重命名索引
?企业管理器
? SQL语句
EXEC SP_RENAME 表名,索引名,新索引名
EXEC SP_RENAME
StuCou.IX_StuNoCouNo, IX_StuNameNew
返回本章首页上一页 下一页
7.2 约束
一、约束的概念
二、约束的实现
返回本章首页上一页 下一页
一、约束的概念
1、约束:允许什么数据进入数据库的规则;分
配给表或列的一个属性,防止列中出出非法数据。
2、约束的类型:
主键约束( primary key constraint)
唯一性约束( unique constraint)
检查约束( check constraint)
缺省约束( default constraint)
外键约束( foreign key constraint)
返回本章首页上一页 下一页
二、约束的实现
1、主键约束( primary key constraint)
一个表只能有一个主键约束,而且主键约束中的
列不能接受空值。
创建:
① 在企业管理器的表的“属性”对话框中,选
中约束选项;表示对该列创建主键约束。
② SQL语句
ALTER TABLE 表名
ADD CONSTRAINT 约束名
PRIMARY KEY(列名)
返回本章首页上一页 下一页
2、唯一性约束( unique constraint)
唯一性约束用于指定一个或者多个列的组合的
值具有唯一性,以防止在列中输入重复的值。当使
用唯一性约束时,需要考虑以下几个因素:
① 使用唯一性约束的字段允许为空值 。
② 一个表中可以允许有多个唯一性约束 。
③ 可以把唯一性约束定义在多个字段上 。
④ 唯一性约束用于强制在指定字段上创建一个
唯一性索引 。
返回本章首页上一页 下一页
3、检查约束( check constraint)
一个表中可以定义多个检查约束,当执行
INSERT语句或者 UPDATE语句时,检查约束将验证数
据。
创建方法:
① 在企业管理器的表的属性对话框中选择
,CHECK约束”属性页进行建立。
② SQL语句
ALTER TABLE 表名
ADD CONSTRAINT 约束名
CHECK (列的布尔表达式)
返回本章首页上一页 下一页
例:
USE XK
ALTER TABLE Student
ADD CONSTRAINT CK_StuNo
CHECK (Willorder>=1 AND Willorder<=5)
返回本章首页上一页 下一页
4、缺省约束( default constraint)
对不确定的值定义一个固定的值,防止出现空
值,这个值称为缺省值。
建立方法
①企业管理器的指定表的“设计表”对话框中
选定某列并“默认值”。
② SQL语句
ALTER TABLE 表名
ADD CONSTRAINT 约束名
DEFAULT (‘缺省值’) FOR 列名
返回本章首页上一页 下一页
5、外键约束( foreign key constraint)
保证相关联表之间的参照完整性
StuCou和 Student两个表中都有 StuNo列
StuCou和 Course两个表中都有 CouNo列
如果在 Student表中删除 StuNo列,则 StuCou
表中的记录就没有意义,为了防止此现象出现,
则不能简单删除 Student表中 StuNo列
建立方法:
ALTER TABLE 表名
ADD CONSTRAINT 约束名
FOREIGN KEY(列名)
返回本章首页上一页 下一页
Thank you very much!










下一章