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

同义词、序列、视图、索引

同义词、序列、视图、索引


1、技术目标

  • 使用同义词
  • 使用序列
  • 创建视图
  • 创建索引


2、什么是Oracle数据库对象?

Oracle 数据库对象又称模式对象,
数据库对象是逻辑结构的集合,最基本的数据库对象是表,
其他数据库对象包括:

  • 同义词
  • 序列
  • 视图
  • 索引


3、同义词

同义词是表、视图、序列、过程、程序包或者其他同义词的别名,使用
同义词访问对象无需指定模式前缀 ,例如,user1访问user2的表Test,
必须使用user2.Test,创建一个名为Test的同义词代表user2.Test,user1
就可使用Test来访问user2.Test

同义词的作用:

  • 简化SQL语句
  • 隐藏对象的名称和所有者
  • 为分布式数据库的远程对象提供位置透明性
  • 提供对对象的公共访问


注意:在使用同义词之前要确保用户已得到访问对象的权限

同义词有两种类型:

  • 私有同义词
  • 公有同义词


4、私有同义词

私有同义词只能被当前模式用户访问,其名称不能与当前模式的对象名相同,
其语法如下:
create [or replace] synonym [schema.] synonym_name
for [shema.]object_name;

语法说明:

  • or replace 表示在同义词存在的情况下替换原同义词
  • synonym_name 要创建的同义词名称
  • object_name 指定要为其创建同义词的对象名


例如:



注意:要创建私有同义词必须拥有CREATE ANY SYNONYM系统权限

5、公有同义词

公有同义词可被所有数据库用户访问,公有同义词可隐藏基表的身份,
降低SQL语句的复杂性,系统在安装时会创建一些字典公有同义词,
比如,同义词"TAB"可用来查询用户所拥有的表和视图对象。
语法:
create [or replace] public synonym synonym_name
for [schema.]object_name;

例如: