日期:2014-05-16  浏览次数:20396 次

Oracle基本的常用的对象
一、索引

1、索引的分类

         按索引列的个数,索引分为单列索引和复合索引。

         按索引列的唯一性,索引分为唯一索引和非唯一索引。

2、索引的组成

         索引有两个部分组成,索引列所对应的值和行地址(ROWID,即原表中列所对应的行地址)。

3、索引的创建
         为了对比明显,我们创建一个数据比较多的表:

         SQL> create table test1 as select * from dba_objects;

         SQL> insert into test1 select * from test1;

 

已创建50341行。


SQL> insert into test1 select * from test1;

 

已创建100682行。

 

SQL> select count(*) from test1;

 

  COUNT(*)

----------

201364

         打开Oracle的计数器

         SQL> set timing on

SQL> select * from test1 where object_name='test1';

已用时间:  00: 00: 00.17

在object_name上创建索引

SQL> create index test1_on on test1(object_name);

SQL> select * from test1 where object_name='test1';

已用时间:  00: 00: 00.20

4、基于函数的索引

SQL> create index test1_on_l on test1(lower(object_name));

SQL> select * from test1 where lower(object_name)='test1';

5、删除索引

SQL> drop index test1_on_l;

二、同义词

         同义词相当于为对象起的别名。如果对象名比较长,输入起来不方便,可以为对象起一个短一点的同义词。

1、创建同义词

       
 SQL> create synonym table1 for test1;
     
   同义词又分私有和公有两种。上面我们所说的同义词,是私有同义词。另外还有一种公有同义词,使用“CREATE PUBLIC SYNONYM 同义词 FOR 对象名”命令创建。

         公有同义词是大家所公有的,每个有户都可以使用。而私有同义词在默认情况下,只能由创建用户使用。这是它们的不同之处,其他都一样。

2、删除同义词

SQL> drop synonym table1;

三、序列

1、序列的创建

下面我们创建一个从1开始,每次增加2,最大值是20的序列:

SQL> create sequence seq1

  2    increment by 2

  3    start with 1

  4    maxvalue 20

  5    nocycle;

通过下面的语句可以查询创建的序列的信息

SQL> select sequence_name,min_value,max_value, increment_by,last_number from user_sequences;

2、序列的使用

         SQL> select seq1.nextval from dual;

SQL> select seq1.currval from dual;

3、序列的修改

SQL> alter sequence seq1 cycle nocache;

4、删除序列

SQL> drop sequence seq1;