Oracleplsql编程3.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracleplsql编程3

目标 5.1 数据库模式对象 5.2 索引 5.3 同义词 5.4 数据库链接 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(简单索引):index\index_1.sql 说明:本例创建的是B*树非惟一简单索引。索引关键字列是ENAME。在步骤2中,因为WHERE条件中出现了索引关键字,所以查询中索引会被自动引用,但是由于行数很少,因此不会感觉到查询速度的差别 示例2(复合索引):index\index_2.sql 说明:在本例中创建的是包含两列的复合索引。JOB是主键,SAL是次键。WHERE条件中引用了JOB和SAL,而且是按照索引关键字出现的顺序引用的,所以在查询中,索引会被引用。 5.3 同义词 5.4.1 模式对象的同义词 同义词(SYNONYM)是为模式对象起的别名,可以为表、视图、序列、过程、函数和包等数据库模式对象创建同义词。同义词有两种:公有同义词和私有同义词。公有同义词是对所有用户都可用的。创建公有同义词必须拥有系统权限CREATE PUBLIC SYNONYM;创建私有同义词需要CREATE SYNONYM系统权限。私有同义词只对拥有同义词的账户有效,但私有同义词也可以通过授权,使其对其他用户有效。同义词通过给本地或远程对象分配一个通用或简单的名称,隐藏了对象的拥有者和对象的真实名称,也简化了SQL语句。 如果同义词同对象名称重名,私有同义词又同公有同义词重名,那么,识别的顺序是怎样的呢?如果存在对象名,则优先识别,其次识别私有同义词,最后识别公有同义词。比如,执行以下的SELECT语句: SELECT * FROM ABC; 如果存在表ABC,就对表ABC执行查询语句;如果不存在表ABC,就去查看是否有私有同义词ABC,如果有就对ABC执行查询(此时ABC是另外一个表的同义词);如果没有私有同义词ABC,则去查找公有同义词;如果找不到,则查询失败。 5.4.2 同义词的创建和使用 同义词的创建语法如下: CREATE [PUBLIC] SYNONYM 同义词名 FOR [模式名.]对象名[@数据库链路名]; 其中: PUBLIC代表创建公有同义词,若省略则代表创建私有同义词。 模式名代表拥有对象的模式账户名。 数据库链路名是指向远程对象的数据库链接。 删除同义词的语法如下 DROP SYNONYM 同义词名; 删除同义词的人必须是同义词的拥有者或有DROP ANY SYNONYM权限的人。删除同义词不会删除对应的对象。 参考示例: synonym\synonym_1.sq

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档