1、建立索引的目的有以下几点:(1)加速数据检索(2)加速连接、ORDER BY 和 GROUP BY 等操作(3)查询优化器依赖于索引起作用(4)强制实行的惟一性在哪些列上建索引主键通常,检索、存取表是通过主键来进行的。因此,应该考虑在主键上建立索引。连接中频繁使用的列用于连接的列若按顺序存放,系统可以很快地执行连接。如外键,除用于实现参照完整性外,还经常用于进行表的连接。在某一范围内频繁搜索的列和按排序顺序频繁检索的列根据数据库的功能,在 SQL Server 2000 中可创建 3 种类型的索引,物理位置分:聚集索引,非聚集索引特殊性分:一般索引、惟一性索引、主键索引。1惟一性索引在表中建立
2、惟一性索引时,组成该索引的字段或字段组合在表中具有惟一值,也就是说,对于表中的任何两行记录来说,索引键的值都是各不相同。 2主键索引表中通常有一个字段或一些字段组的合,其值用来惟一标识表中的每一行记录,该字段或字段组合称为表的主键。 3聚集索引在聚集索引中,表中各记录的物理顺序与键值的逻辑(索引) 顺序相同。只有在表中建立了一个聚集索引后,数据才会按照索引键值指定的顺序存储到表中。由于一个表中的数据只能按照一种顺序来存储,所以在一个表中只能建立一个聚集索引。 视图的作用视图通常用来集中、简化和自定义每个用户对数据库的不同认识。视图可用作安全机制,方法是允许用户通过视图访问数据,而不授予用户直接
3、访问视图基础表的权限。 (1)简化操作(2)定制数据(3)导出数据(4)安全性通过视图添加表数据语法格式:INSERT INTO 视图名 VALUES(列值 1,列值 2,列值 3,列值 n)例 7-9 在 goods 表中建立一个视图,利用视图插入一行数据。CREATE VIEW goods_viewAS SELECT goods_id, goods_name, classification_id, unit_price, stock_quantityFROM goods WHERE (classification_id = P001)INSERT INTO goods_viewVALUES
4、 (G0008,SONY DVD,P002, 400,10)将视图 goods_view 中商品号为 G00002的商品名改为 “IBM R61”。UPDATE goods_viewSET goods_name= IBM R61WHERE goods_id = G00002;若视图定义包含了计算列,该视图的计算列是不可更新的.尽管视图不一定包含基础表的所有列,但可以通过视图删除基础表的数据行。例 7-10:delete from goods_view Where goods_name=IBM R51若通过视图要删除的数据行不包含在视图定义中,该数据行不能成功删除。例 7-10-1delete
5、from goods_view Where goods_id=G00004若删除语句的条件中指定的列是视图中未包含的列,则无法通过视图删除基表数据行 7-10-2delete from goods_view Where order_quantity=5实体完整性,域完整性,参照完整性,用户定义的完整性是怎么实现的创建雇佣日期规则 hire_date_rule。CREATE RULE hire_date_ruleAS hire_date=1980-01-01 and hire_date18)ALTER TABLE employeeADD hire_date datetimeDEFAULT (ge
6、tdate() WITH VALUES规则和约束可以同时使用,表的列可以有一个规则及多个约束。规则与检查约束在功能上相似,但在使用上有所区别。检查约束是在 CREATE TABLE 或 ALTER TABLE 语句中定义的,嵌入了被定义的表结构,即删除表的时候检查约束也就随之被删除。而规则需要用 CREATE RULE 语句定义后才能使用,是独立于表之外的数据库对象,删除表并不能删除规则,需要用 DROP RULE 语句才能删除。相比之下,使用在 CREATE TABLE 或 ALTER TABLE 语句中定义的检查约束是更标准的限制列值的方法,但检查约束不能直接作用于用户定义数据类型。 默认值对象与默认约束指定的默认值功能相似,两者的区别类似于规则与检查约束在使用上的区别。