当前位置:首页 >> 高中教育 >>

建立索引的目的有以下几点


建立索引的目的有以下几点: (1)加速数据检索 (2)加速连接、ORDER BY 和 GROUP BY 等操作 (3)查询优化器依赖于索引起作用 (4)强制实行的惟一性 在哪些列上建索引主键 通常,检索、存取表是通过主键来进行的。因此,应该考虑在主键上建立索引。 连接中频繁使用的列 用于连接的列若按顺序存放, 系统可以很快地执行连接。 如外键, 除用于实现参照完整性外, 还经常用

于进行表的连接。 在某一范围内频繁搜索的列和按排序顺序频繁检索的列 根据数据库的功能,在 SQL Server 2000 中可创建 3 种类型的索引, 物理位置分:聚集索引,非聚集索引 特殊性分:一般索引、惟一性索引、主键索引。 1.惟一性索引 在表中建立惟一性索引时,组成该索引的字段或字段组合在表中具有惟一值,也就是说,对 于表中的任何两行记录来说,索引键的值都是各不相同。 2.主键索引 表中通常有一个字段或一些字段组的合, 其值用来惟一标识表中的每一行记录, 该字段或字 段组合称为表的主键。 3.聚集索引 在聚集索引中,表中各记录的物理顺序与键值的逻辑(索引)顺序相同。只有在表中建立了一 个聚集索引后, 数据才会按照索引键值指定的顺序存储到表中。 由于一个表中的数据只能按 照一种顺序来存储,所以在一个表中只能建立一个聚集索引。 视图的作用 视图通常用来集中、简化和自定义每个用户对数据库的不同认识。视图可用作安全机制,方 法是允许用户通过视图访问数据,而不授予用户直接访问视图基础表的权限。 (1)简化操作 (2)定制数据 (3)导出数据 (4)安全性 通过视图添加表数据 语法格式: INSERT INTO 视图名 VALUES(列值 1,列值 2,列值 3,?,列值 n) 例 7-9 在 goods 表中建立一个视图,利用视图插入一行数据。 CREATE VIEW goods_view AS SELECT goods_id, goods_name, classification_id, unit_price, stock_quantity FROM goods WHERE (classification_id = 'P001') INSERT INTO goods_view VALUES ('G0008','SONY DVD','P002', 400,10) 将视图 goods_view 中商品号为’G00002’的商品名改为“IBM R61” 。 UPDATE goods_view SET goods_name= ' IBM R61' WHERE goods_id = ‘G00002’ ;

若视图定义包含了计算列,该视图的计算列是不可更新的. 尽管视图不一定包含基础表的所有列,但可以通过视图删除基础表的数据行。 例 7-10: delete from goods_view Where goods_name=‘IBM R51’ 若通过视图要删除的数据行不包含在视图定义中,该数据行不能成功删除。例 7-10-1 delete from goods_view Where goods_id='G00004' 若删除语句的条件中指定的列是视图中未包含的列, 则无法通过视图删除基表数据行 7-10-2 delete from goods_view Where order_quantity=5 实体完整性,域完整性,参照完整性,用户定义的完整性是怎么实现的 创建雇佣日期规则 hire_date_rule。 CREATE RULE hire_date_rule AS @hire_date>='1980-01-01' and @hire_date<=getdate() 将例 8-1 创建的规则 hire_date_rule 绑定到 employee 表的 hire_date 列上。 EXEC sp_bindrule hire_date_rule, 'employee.hire_date' 解除例 8-6 和例 8-7 绑定在 employee 表的 hire_date 列和用户定义数据类型 pat_char 上的规 则。 EXEC sp_unbindrule 'employee.hire_date EXEC sp_unbindrule ‘pat_char’, 'futureonly‘ 删除例 8-1 和 8-2 中创建的规则。 DROP RULE sex_rule,hire_date_rule 创建当前日期默认值 today_defa。 CREATE DEFAULT today_defa AS getdate() 查看默认值 today_defa。 EXEC sp_helptext today_defa 例 8-14 绑定默认值 today_defa 到 employee 表的 hire_date 列上。 EXEC sp_bindefault today_defa, 'employee.hire_date' 解除默认值 today_defa 与表 employee 的 hire_date 列的绑定。 EXEC sp_unbindefault 'employee.hire_date' 删除生日默认值 birthday_defa。 DROP DEFAULT birthday_defa 根据商品销售的时间和商品类别来确定销售的商品的数量。 CREATE TABLE g_order ( good_type int, order_time datetime, order_num int, CONSTRAINT g_o_key PRIMARY KEY (good_type, order_time) ALTER TABLE g_order drop constraint g_o_key 创建一个订货表 sell_order1,与例 8-18 创建的产品表 goods1 相关联。 CREATE TABLE sell_order1

( order_id1 char(6) NOT NULL, goods_id char(6) NOT NULL, employee_id char(4) NOT NULL, customer_id char(4) NOT NULL, transporter_id char(4) NOT NULL, order_num float NULL, discount float NULL, order_date datetime NOT NULL, send_date datetime NULL, arrival_date datetime NULL, cost money NULL, CONSTRAINT pk_order_id PRIMARY KEY (order_id1), FOREIGN KEY (goods_id) REFERENCES goods1(goods_id)) ALTER TABLE sc ADD FOREIGN KEY (Sno) REFERENCES student ON DELETE CASCADE ON UPDATE CASCADE; 定义一个员工信息表 employees,其中员工的身份证号 emp_cardid 列具有惟一性。 CREATE TABLE employees ( emp_id char(8), emp_name char(10) , emp_cardid char(18), CONSTRAINT pk_emp_id PRIMARY KEY (emp_id), CONSTRAINT uk_emp_cardid UNIQUE (emp_cardid) 建立 Student 中 sname 的唯一约束, 删除 Student 中 sname 完整性约束 alter table student add constraint s_name unique(sname) alter table student drop constraint s_name 更改表 employee2 以添加未验证检查约束。 ALTER TABLE employee2 WITH NOCHECK ADD CONSTRAINT CK_Age CHECK (DATEDIFF(year, Birth_Date, Hire_Date)>18) ALTER TABLE employee ADD hire_date datetime DEFAULT (getdate()) WITH VALUES 规则和约束可以同时使用, 表的列可以有一个规则及多个约束。 规则与检查约束在功能 上相似,但在使用上有所区别。 检查约束是在 CREATE TABLE 或 ALTER TABLE 语句中定义的,嵌入了被定义的表结 构,即删除表的时候检查约束也就随之被删除。 而规则需要用 CREATE RULE 语句定义后才能使用,是独立于表之外的数据库对象, 删除表并不能删除规则,需要用 DROP RULE 语句才能删除。

相比之下,使用在 CREATE TABLE 或 ALTER TABLE 语句中定义的检查约束是更标准 的限制列值的方法,但检查约束不能直接作用于用户定义数据类型。 默认值对象与默认约束指定的默认值功能相似, 两者的区别类似于规则与检查约束在使用上 的区别。


相关文章:
建立索引的目的有以下几点
建立索引的目的有以下几点_高中教育_教育专区。建立索引的目的有以下几点: (1)加速数据检索 (2)加速连接、ORDER BY 和 GROUP BY 等操作 (3)查询优化器依赖于索...
选择题
我们把满足以下两个条件的基本层次联系的集合称为层次模型:B (1)有一个结点...(4) 1、在关系数据库的询问优化中,事先处理文件,如排序、建立索引的目的是(...
大型数据库2009级试题1答案
建立索引的目的是( 10.下列哪个数据库至少有dbo和guest两个用户( 订 A.降低 ...“图书信息表”添加以下记录 (3 分)作者 赵一 出版社 清华大学出版社 (2) ...
VF 复习题及答案
创建数据库表结构时,为该表中一些字段建立普通索引,其目的是 ( A、改变表...( A、DO T1 C、DO FORM T1 37、有如下命令序列: GO 50 SKIP ?RECNO()...
数据库复习题答案
丢失(覆盖 )修 外部模型在关系数据库的询问优化中,事先处理文件,如排序、建立索引的目的是? 提高查询的检索功能,.减少扫描文件的时间;有一个关系:学生(学号,...
复习题
1. 启动 Oracle 数据库的有 3 个阶段,分别是 启动例程 、例程装载数据库 和...1. 以下关于索引的描述哪一个是不正确的 (D) (A)建立索引的目的是为了提高...
11-12-2VFP期中试卷
有三个关系 R、S 和 T 如下 R S T A B C A B C A B C a 1 2...在数据库中建立索引的目的是 A)节省存储空间 B)提高查询速度 C)提高查询和...
北师大0495《计算机导论》在线作业
(2.5 分) 有关防火墙的作用下列说法正确的是( ) 是隔离机器和外部环境的墙 ...(2.5 分) 数据库中建立索引的目的是为了( ) 加快建表速度 提高安全性 加快...
《数据库原理》期末考试试题
建立索引的目的是 A.减少存储空间 提高存取速度 9.数据模型的三要素是 A. 外...R 的分解ρ ={AC, BC}, 判断该分 3.设要建立一个企业数据库,该企业有多...
2数据库试题4(答案)
A.NOT NULL B.DISTINCT C.UNIQUE D.CHECK 7、 建立索引的目的是( D ): ...图书信息,有以下属性 图书 ID,图书名称,作者,出版社,出版日期,图书分类(数据库...
更多相关标签:
数据库建立索引的目的 | 建立索引的目的是 | 建立索引的目的 | 全球目的地城市索引 | mysql 建立索引 | 建立索引 | oracle 建立索引 | sql建立索引 |