• Oracle同义词详解

    发布:51Code 时间: 2017-05-12 09:57

  • 1 、同义词概述 同义词从字面上理解就是别名的意思,和视图的功能类似。就是一种映射关系。同义词拥有如下好处:节省大量的数据库空间,对不同用户的操作同一张表没有多少差别...

  • 1、同义词概述
     
           同义词从字面上理解就是别名的意思,和视图的功能类似。就是一种映射关系。同义词拥有如下好处:节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;扩展的数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;同义词可以创建在不同一个数据库服务器上,通过网络实现连接。

           知识扩展:数据库对象

           表、视图、序列、过程、函数、程序包,甚至其它同义词都可以创建同义词。

           同义词分为:私有同义词、公有同义词。

           私有同义词只能被当前模式的用户访问。私有同义词名称不可与当前模式的对象名称相同。要在自身的模式创建私有同义词,

           用户必须拥有Create Synonym系统权限。要在其它用户模式创建私有同义词,用户必须拥有Create Any Synonym系统权限。

           公有同义词可被所有的数据库用户访问。要创建公有同义词,用户必须拥有Create Public Synonym系统权限。
     
        2、同义词创建

            创建同义词语法:

     Create [PUBLIC] SYNONYM synonym_name FOR [schema.]object_name;

    示例1: 

    create public synonym emp_syn from scott.emp;

    此外如果要创建一个远程的数据库上的某张表的同义词,需要先创建一个Database Link(数据库连接)来扩展访问,然后在使用如下语句创建数据库同义词。

           示例2:

    create synonym table_name for table_name@DB_Link;

     当然,你可能需要在user用户中给当前用户(user2)授权: grant select/delete/update on user2
     
        3、删除同义词

           删除同义词语法是:

    drop [public] synonym table_name; 

    4、查看所有同义词:

    select * from dba_synonyms 


  • 上一篇:博为峰Java面试题-Java 面向对象

    下一篇:Oracle序列应用举例

网站导航
Copyright(C)51Code软件开发网 2003-2020 , 沪ICP备05003035号-6