月光疾风

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一、视图
create view viewname as select语句 [with read only] | [with check option]
drop view viewname
alter view viewname as select语句


二、索引
1. 简介

  • 查询性的表,要多建索引; 修改型的表,要少建索引
  • 索引有唯一索引的和非唯一索引两种
  • oracle提供了B树,散列,位图等索引类型,主要使用B树索引和位图索引。
  • B树索引是默认条件下创建的,可以是唯一的也可以是非唯一的,可以是基于一列的,也可以是多列的。B树索引在检索高基数数据列时有很好的性能,对于取出较小的数据,B树索引也更有效。但是当检查范围超过表的10%时,就不行了。
  • 位图索引主要用于决策支持系统或者静态数据,不支持行级锁定。位图索引可以是单列的,也可以是多列的。最好用于小型或者中型群集列。位图以一种压缩格式存放,占用的空间小。

2. 创建索引
create [unique] index 索引名 on 表名(fieldname[asc|desc], fieldname,...) [with {primary| disallownull|ignorenull}] tablespace 表空间名

此外,constraint条件子句的功能类似于索引,并且它也可以建立表之间的关联性。注意这个子句是create表的子句。
单一字段索引语句格式:constraint constraintname {primary key|unique|references foreigntable[(foreignfield1, foreignfield2)]}
多字段索引语句格式:
constraint constraintname {primary key(primary1, primary2,...) | unique(unique1, unique2,...)|foreign key(ref1, ref2,...)| references foreigntable[(foreignfield1, foreignfield2,...)] }

三、同义词

  • 同义词是表,视图,序列,存储函数,包,快照,或者其他同义词的另一个名字。同义词有公共的和私有的之分。在本地数据库同义词还可以通过链接表示另一个数据库的对象。使用同义词可以有以下优点:引用对象无需指出对象的所有者和数据库
  • 为一个表创建同义词的方法是:create public|private name for [username.]tablename
  • 不能为抽象数据类型创建同义词,当创建同义词时,oracle不检查同义词的有效性。所以用户应该自己测试。删除同义词的语句是drop SYNONYM name(private的),或者drop public SYNONYM name(public的).
  • 用户可以删除自己的任何私有同义词,但是要想删除其他用户的私有同义词,必须拥有drop any synonym的权限,要想删除public同义词,必须拥有drop public synonym权限。

四、序列

  • 序列是多个用户能够以此产生唯一整数的数据库对象,可以用它来自动产生主键值,当然不必是只包含序列的值。使用序列时,不保证将生成一系列连续的值
  • 创建序列的语句是create sequence 序列名 keyword。其中的keyword包括start with, increment by(降序为负), minvalue(默认为nominvalue,即1和-10E26), maxvalue(默认为nomaxvalue,即-1和10E26), cycle, nocycle, cache, nocache
  • 修改序列的语句是alter sequence 序列名 keyword
  • 删除序列的语句是drop sequence 序列名
posted on 2011-03-14 17:17  月光疾风  阅读(1933)  评论(0编辑  收藏  举报