网站大量收购闲置独家精品文档,联系QQ:2885784924

sql实例教程课件第5章节其他数据库对象.ppt

sql实例教程课件第5章节其他数据库对象.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 其他数据库对象 5.1 数据库模式对象 5.2 索引 5.3 序列 5.4 同义词 5.5 聚簇 5.6 数据库链接 5.7 练习 5.1 数据库模式对象 Oracle数据库的模式对象如表5-1所示。 5.2 索引 5.2.1 Oracle数据库的索引 索引(INDEX)是为了加快数据的查找而创建的数据库对象,特别是对大表,索引可以有效地提高查找速度,也可以保证数据的惟一性。索引是由Oracle自动使用和维护的,一旦创建成功,用户不必对索引进行直接的操作。索引是独立于表的数据库结构,即表和索引是分开存放的,当删除索引时,对拥有索引的表的数据没有影响。 在创建PRIMARY KEY和UNIQUE约束条件时,系统将自动为相应的列创建惟一(UNIQUE)索引。索引的名字同约束的名字一致。 索引有两种:B*树索引和位图(BITMAP)索引。 B*树索引是通常使用的索引,也是默认的索引类型。在这里主要讨论B*树索引。B*树是一种平衡2叉树,左右的查找路径一样。这种方法保证了对表的任何值的查找时间都相同。 B*树索引可分为:惟一索引、非惟一索引、一列简单索引和多列复合索引。 创建索引一般要掌握以下原则:只有较大的表才有必要建立索引,表的记录应该大于50条,查询数据小于总行数的2%~4%。虽然可以为表创建多个索引,但是无助于查询的索引不但不会提高效率,还会增加系统开销。因为当执行DML操作时,索引也要跟着更新,这时索引可能会降低系统的性能。一般在主键列或经常出现在WHERE子句或连接条件中的列建立索引,该列称为索引关键字。 5.2.2 索引的创建 创建索引不需要特定的系统权限。建立索引的语法如下: CREATE [{UNIQUE|BITMAP}] INDEX 索引名 ON 表名(列名1[,列名2,...]); 其中: UNIQUE代表创建惟一索引,不指明为创建非惟一索引。 BITMAP 代表创建位图索引,如果不指明该参数,则创建B*树索引。 列名是创建索引的关键字列,可以是一列或多列。 删除索引的语法是: DROP INDEX 索引名; 删除索引的人应该是索引的创建者或拥有DROP ANY INDEX系统权限的用户。索引的删除对表没有影响。 【训练1】 创建和删除索引。 步骤1:创建索引: CREATE INDEX EMP_ENAME ON EMP(ENAME); 执行结果: 索引已创建。 步骤2:查询中引用索引: SELECT ENAME,JOB,SAL FROM EMP WHERE ENAME=SCOTT; 执行结果: ENAME JOB SAL ------------ ------------------- -------------------- SCOTT ANALYST 3000 步骤3:删除索引: DROP INDEX EMP_ENAME; 执行结果: 索引已丢弃。 说明:本例创建的是B*树非惟一简单索引。索引关键字列是ENAME。在步骤2中,因为WHERE条件中出现了索引关键字,所以查询中索引会被自动引用,但是由于行数很少,因此不会感觉到查询速度的差别。 【训练2】 创建复合索引。 步骤1:创建复合索引: CREATE INDEX EMP_JOBSAL ON EMP(JOB,SAL); 执行结果: 索引已创建。 步骤2:查询中引用索引: SELECT ENAME,JOB,SAL FROM EMP WHERE JOB=MANAGERAND SAL2500; 执行结果: ENAME JOB SAL -------------- --------------------- ----------------- BLAKE MANAGER 2850 CLARK MANAGER 2850 JONES MANAGER 2975 说明:在本例中创建的是包含两列的复合索引。JOB是主键,SAL是次键。WHERE条件中引用了JOB和SAL,而且是按照索引关键字出现的顺序引用的,所以在查询中,索引会被引用。 如下的查询也会引用索引: SELECT ENAME,JOB,SAL FROM EMP WHERE JOB=CLERK; 但以下查询不会引用索引,因为没有先引用索引关键字的主键: SELECT ENAME,JOB,SAL FROM

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档