Oracle中synonym和index

时间:2024-07-22 19:07:56

笔记:

Oracle-同义词
--通过用户名(模式名).表名
       --授权:grant create synonym to test1(system用户下授权))
     --私有
  create or replace synonym sy_test1 for gcs95.test1;
  --共有
  create public synonym public_sy_test1 for gcs95.test1;
  /*私有:其他用户无法访问*/
  select * from sy_test1;
  /*共有:在所有的授权了的用户中都可以访问*/
        select * from public_sy_test1;      --特点:屏蔽了对象的所有者
索引:
 定义:
  提高查询效率
  
 rowid:数据库表中那一行的物理地址
 1> B树:

  可以说是最终查询的是rowid
    create index stu_index on 表名(列名); 
 2> 反向键索引:
  适用于插入数据操作比较频繁的情况,可以分散对内存的操作;
  查询的时候使用也可以提高查询效率!
  存在形式:
  分配到  最终访问的
  102   -  201
  123  -  321
  
  语法:
   create index index_revers_empno on 表名(列名)revers;
 3> 位图索引:
  在XE版本的oracle上面无法创建!不存储rowid,而是存储rowid的映射!意味着没占用存储空间!
  适用于某列数据值是 有限(指重复出现的值) 的情况下可以使用此列创建位图索引,

表分区:
  

  


代码:

 实练:

 --同义词 synonym       

 --通过用户名(模式名).表名       

 --授权:grant create synonym to test1      

   /*私有:其他用户无法访问*/      

   select * from sy_test1;       

 /*共有:在所有的授权了的用户中都可以访问*/        

 select * from public_sy_test1;     

 --特点:屏蔽了对象的所有者,可以直接访问该表

 --测试:创建表 create table Depostitor (  

           actid number not null,       

        cardid number not null,       

        lastname varchar2(10) not null,       

        firstname varchar2(10) not null,       

        address1 varchar2(200) not null,       

        address2 varchar2(200),      

         address3 varchar2(200),       

        blance number(10,2),        

       constraint pk_depostor primary key(actid)       

 );

 --添加B树索引 

   create index cd_index on Depostitor(cardid); drop index cd_index

 --添加反向键索引

    create index index_revers_empno on Depostitor(cardid)revers; --添加测试数据 insert Depostitor values ();

 --select select * from depostitor;

 --cardid查询 select * from depostitor where cardid between 1 and 100000;

synonym练习