Oracle 对象语句1.ppt

上传人:gsy****95 文档编号:88521631 上传时间:2023-04-26 格式:PPT 页数:40 大小:70.50KB
返回 下载 相关 举报
Oracle 对象语句1.ppt_第1页
第1页 / 共40页
Oracle 对象语句1.ppt_第2页
第2页 / 共40页
点击查看更多>>
资源描述

《Oracle 对象语句1.ppt》由会员分享,可在线阅读,更多相关《Oracle 对象语句1.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第五章oracleoracle数据库对象数据库对象本章目标l本章需要掌握oracle中常用的几个对象:视图、索引、同义词、序列以及聚簇。l了解各种对象的原理,熟练操作。1.1 视图l定义:一种数据库对象,它允许从一个表或定义:一种数据库对象,它允许从一个表或一组表中建立一个一组表中建立一个“虚的但是很实用的表虚的但是很实用的表”。l视图与表相比,有如下相同之处:视图与表相比,有如下相同之处:-视图与表一样由列组成,其查询方式与表视图与表一样由列组成,其查询方式与表完全相同。完全相同。-和表一样,用户也可以在视图中插入、更和表一样,用户也可以在视图中插入、更 新或删除数据,在视图中做这些操作时和

2、在新或删除数据,在视图中做这些操作时和在 表中是一样的。表中是一样的。视图与基表区别l在大多数可以使用表的场合中,都可以使用视图。在大多数可以使用表的场合中,都可以使用视图。但视图与表之间存在着本质的区别:但视图与表之间存在着本质的区别:-视图中没有数据,而仅仅是一条视图中没有数据,而仅仅是一条sql查询语句。按查询语句。按此查询语句检索出的数据以表的形式表示。视图中此查询语句检索出的数据以表的形式表示。视图中的列可以在一个或多个基本表中找到。所以视图不的列可以在一个或多个基本表中找到。所以视图不使用物理存储位置来存储数据。使用物理存储位置来存储数据。l视图的定义存储在数据字典中。对一个视图进

3、行查视图的定义存储在数据字典中。对一个视图进行查询时,视图将查询其基于的表,并且以视图定义所询时,视图将查询其基于的表,并且以视图定义所规定的格式和顺序返回值。规定的格式和顺序返回值。l由于视图没有直接相关的物理数据,所以不能像表由于视图没有直接相关的物理数据,所以不能像表那样被索引。那样被索引。视图的优缺点l优点:优点:-安全:可以利用视图限制用户访问表中记录的权安全:可以利用视图限制用户访问表中记录的权力,经常采用视图来阻止用户查看表中的全部数据。力,经常采用视图来阻止用户查看表中的全部数据。还可以限制用户向表中插入数据的能力。还可以限制用户向表中插入数据的能力。-方便:视图可以隐藏数据的

4、复杂性。执行连接方便:视图可以隐藏数据的复杂性。执行连接(join)操作,用户可从两个或多个表中检索出信)操作,用户可从两个或多个表中检索出信息,但过于繁琐、复杂的连接操作常常使用户感到息,但过于繁琐、复杂的连接操作常常使用户感到费解、迷惑。在这种情况下,就有必要建立混合有费解、迷惑。在这种情况下,就有必要建立混合有多表信息的视图,从而生成简单易懂的结果。多表信息的视图,从而生成简单易懂的结果。视图的优缺点l缺点:缺点:-性能:因为视图是由语句构造的表,所以若是多性能:因为视图是由语句构造的表,所以若是多个表,可能连接时间过长,造成性能下降。个表,可能连接时间过长,造成性能下降。-更新限制:单

5、表连接建立的视图必须转换为对基更新限制:单表连接建立的视图必须转换为对基表的更新操作。若是多表连接创建的视图只能是表的更新操作。若是多表连接创建的视图只能是只读的,不能直接更新。只读的,不能直接更新。创建视图l格式:格式:create or replace force view 模式名模式名.视图名视图名 as select 语句语句 with read only|with check optionl说明:说明:-名字要唯一,不能与其他对象重名。名字要唯一,不能与其他对象重名。-or replace:表示允许新视图替换已存在的一个同名视图。:表示允许新视图替换已存在的一个同名视图。-force

6、:表示强制建立视图,即使在基本表不存在或无权访问基:表示强制建立视图,即使在基本表不存在或无权访问基本表的情况下。本表的情况下。-with read only:所建立的视图为只读,不能插入、修改、删除:所建立的视图为只读,不能插入、修改、删除数据。数据。-with check option:每当向视图插入或更新数据时,保证能被:每当向视图插入或更新数据时,保证能被视图查出来。视图查出来。查看视图l查询视图:使用数据字典。查询视图:使用数据字典。视图名说明dba_views包含了数据库中所有的视图信息。all_views包含了当前用户可以访问的所有视图信息。user_views 包含了当前用户所

7、拥有的所有视图信息。修改视图l修改视图:修改视图:alter view 视图名视图名 compile;功能:只是重新编译一下视图,来检查基功能:只是重新编译一下视图,来检查基本本sql语句有效性。语句有效性。删除视图l格式:格式:drop view 视图名;视图名;1.2 索引l定义:根据表中的一列或多列的值快速访问表中行定义:根据表中的一列或多列的值快速访问表中行的结构。的结构。l目的:快速查询。目的:快速查询。l特点:特点:-索引块小,比对应的数据库表小的多。索引块小,比对应的数据库表小的多。-查询快,表中元组的增加不影响索引性能。查询快,表中元组的增加不影响索引性能。-自动维护,索引与表

8、具有直接对应关系,如果数据库记录自动维护,索引与表具有直接对应关系,如果数据库记录顺序发生改变,索引表的存储顺序也自动调整。顺序发生改变,索引表的存储顺序也自动调整。-独立于数据,索引在任何时间都可以删除和重建,不影响独立于数据,索引在任何时间都可以删除和重建,不影响应用程序。应用程序。-多索引,可以在一个表的多个字段上建立索引。多索引,可以在一个表的多个字段上建立索引。索引的使用规则l记录少可不建记录少可不建l一个表不要建太多索引。一个表不要建太多索引。l访问频繁的列,建索引。访问频繁的列,建索引。创建索引l格式:格式:create unique index 模式名模式名.索引名索引名 on

9、 模式名模式名.表名表名 (属性(属性1 asc|desc,.属性属性n asc|desc)查询索引数据字典视图名称说明user_indexes包含了当前用户所拥有的所有表上的索引信息。包含了当前用户所拥有的所有表上的索引信息。all_indexes包含了当前用户可以访问的所有表上的索引信包含了当前用户可以访问的所有表上的索引信息。息。dba_indexes包含了数据库中所有表上的索引信息。包含了数据库中所有表上的索引信息。User_ind_columns包含了当前用户拥有的所有表里的与索引有关包含了当前用户拥有的所有表里的与索引有关的表列信息。的表列信息。All_ind_columns包含了

10、当前用户可以访问的所有表里的与索引包含了当前用户可以访问的所有表里的与索引有关的表列信息。有关的表列信息。Dba_ind_columns包含了数据库中所有与索引有关的表列信息。包含了数据库中所有与索引有关的表列信息。改变索引名l格式:alter index 旧索引名 rename to 新索引名;验证索引l格式:validate index 索引名;l说明:-如果返回信息为“索引已验证”或“索引已 分析”,表示此索引仍然可用。-如果返回为其他信息,表示此索引已 坏,需删除重建。删除索引l格式:drop index 索引名;l说明:把不再使用的索引从数据库中删除。1.3 同义词l定义:数据库对象

11、的别名。定义:数据库对象的别名。l优点:优点:-隐藏了其他对象的名称和拥有者,同义词实现了一定的隐藏了其他对象的名称和拥有者,同义词实现了一定的 保护层。保护层。-隐藏表的具体位置。隐藏表的具体位置。-便于其他对象的使用,简化了命名,减少了数据库用户便于其他对象的使用,简化了命名,减少了数据库用户 的的sql句法的复杂程度。句法的复杂程度。-能够掩盖一些数据库对象的变化(如改名),只需重新能够掩盖一些数据库对象的变化(如改名),只需重新 定义同义词,而无需修改基于同义词的应用程序。定义同义词,而无需修改基于同义词的应用程序。同义词类型l同义词可分为两种类型:-公有同义词(public syno

12、nym)-私有同义词(private synonym)l说明:数据库的所有用户均可使用公有同义词,而私有同义词则只包括在一个特定用户的模式里,只能为该用户和该用户授权的用户使用。创建同义词l格式:create public synonym 模式名.同义词名 for 模式名.对象名;l说明:-public:表示建立一个公用同义词。省略 表示建立一个私有同义词。-对象名:可以是表、视图等。查看同义词l使用数据字典:user_synonyms dba_synonyms all_synonyms删除同义词l格式:drop public synonym 模式名.同义词名;1.4 序列l定义:是一种可被多

13、个用户使用的用于产生一系列唯一数字列的数据库对象。l序列定义存储在数据字典中,序列通过提供唯一数值的顺序表用来简化程序设计工作,可以使用序列自动产生主键的键值。序列的工作原理l不管事务状态如何,数字每次均增加,这样保证唯一性,不与某个表直接相连,只是传送序号,可以不同表中的不同列使用同一个序列,但是不同表中不同列的值只能唯一不能连续。创建序列l格式:create sequence 模式名.序列名 start with 开始整数 increment by 增量 maxvalue 最大值|nomaxvalue minvalue 最小值|nominvaluel说明:通过序列起始数字、最大值、最小值和

14、增量值可以确定序列是增序还是减序,每次增多少或减多少。查看序列l使用数据字典:user_sequences dba_sequences all_sequences访问序列l可以通过nextval和currval两个伪列来引用序列。只能访问取值,不能操作序列。lcurrval:返回序列的当前值。lnextval:返回序列的下一个值。修改序列l格式:alter sequence 序列名 increment by 增量 maxvalue 最大值|nomaxvalue minvalue 最小值|nominvalue 修改序列说明l若想重新设置初值,必须删除序列重建。l可以修改增量、最大值、最小值等。删

15、除序列l格式:drop sequence 序列名;l说明:删除oracle db中不再起作用的序列。1.5 聚簇l簇是一种可选方法,可以用来存储表中的数据。簇是共享相同数据块的一组表,因为这些表具有相同的列,并且经常一起使用。簇是特殊的配置,当两个或多个表的数据存储在物理上十分接近时,可以通过簇来提高使用这些表的sql连接语句的性能。l簇是一种存储表的方法,这些表密切相关,并且经常连接在一起,存储在磁盘的相同区域中。l簇不会修改存储在表中的数据,但确实会修改数据的存储方式和访问方式。簇键和簇索引l一个表簇由若干个共享着相同数据块的表组成,通常这些表具有一个或多个相同的表列并且常常一起使用。同一

16、个表簇中的各个表中相关的列称为簇键(cluster key)。l簇键用一个簇索引来进行索引。对于簇中的多个表,簇键值只存储一次。建好簇之后,可以在簇中创建新表。在把任何行插入簇的表中之前,都必须先创建一个簇索引。簇键的优点l减少了磁盘的I/O,并且缩短了对簇表的连接的访问时间。l无论有多少个表,簇键值只在簇里存储一次,所以使用表簇存储表和索引数据将会比不使用簇需要相对少一些的空间。簇键的缺点l与将每个表及其索引单独存储相比,簇会降低insert语句的性能。l经常更新的列不应选作簇键。簇的创建l格式:create cluster 簇名(属性名 数据类型 ,属性名 数据类型,.);创建簇索引l格式

17、:create index 索引名称 on cluster 簇的名称;簇的删除l格式:drop cluster 簇的名称;l说明:删除db中不在需要的簇。要求簇必须为空。簇的删除l格式:drop cluster 簇名 including tables;l说明:如果要删除包含一个或多个表的簇时,应使用此语法。删除簇的同时也删除了簇中的表。簇的删除l格式:drop cluster 簇名 including table(s)cascade constraint;l说明:如果要删除的簇中的表被这个簇以外的表引用时,应使用此语法。同时删除簇中的表。本章总结l本章主要讲述了oracle数据库中常用的几个对象:视图、索引、同义词、序列、簇。l要求学员要很好的掌握其原理,熟练操作。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁