博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle--同义词详解
阅读量:2442 次
发布时间:2019-05-10

本文共 950 字,大约阅读时间需要 3 分钟。

同义词

同义词(synonym)是表、索引和视图等模式对象的一个别名。同义词只是数据库对象的替代名,与视图类似,同义词并不占用实际存储空间,只在数据字典中保存同义词的定义。在使用同义词时,Oracle简单地将它翻译成对应方案的名称。

通过使用同义词,一方面可以简化对象访问,如数据字典视图USER_INDEXES的同义词为IND,数据字典视图USER_SEQUENCES的同义词为SEQ;另一方面可以提高对象访问的安全性,如屏蔽对象所有者、对象名和数据库链接名。

在开发数据库应用程序时,应当尽量避免直接引用表、视图或其他数据库对象打的名称,而改用这些对象的同义词。这样可以避免当管理员对数据库对象做出修改和变动之后,必须重新编译应用程序。使用同义词后,即使引用的对象发生变化,也只需要在数据库中对同义词进行修改,而不必对应用程序做任何改动。

在Oracle中可以创建两种类型的同义词:

  • 共用同义词(public synonym): 共有同义词是由PUBLIC用户组所拥有,数据库中所有的用户都可以使用共有同义词。
  • 私有同义词(private synonym): 私有同义词是由创建它的用户(或方案)所拥有,也称方案同义词(schema synonym)。用户可以控制其他用户是否有权使用属于自己的方案同义词。

在创建同义词时,它所基于的对象可以不存在,并且创建同义词的用户也不需要对基础对象有任何访问权限。

语法如下

CREATE [OR REPLACE][PUBLIC] SYNONYM synonym_nameFOR [schema.]object;

为模式TEMP中的表sys_user创建一个共有同义词public_user,尽管该模式并不存在。

create public synonym public_userfor temp.sys_user;

如果同义词所对应的基础对象不存在,则当用户访问时同义词将重新编译,并验证为无效。

在操作过程中,不能修改或改变同义词,而只能删除。

删除刚刚创建的同义词

drop public synonym public_user;

Oracle在数据字典中将保存创建同义词的定义。通过数据字典视图USER_SYNONYMS,可以查询有关同义词的信息。

转载地址:http://skpqb.baihongyu.com/

你可能感兴趣的文章
实验-数据分布对执行计划的影响.txt
查看>>
实验-闪回数据库
查看>>
实验-闪回表
查看>>
oracle审计
查看>>
typeof运算符_JavaScript typeof运算子
查看>>
react 前端拆分_React中的代码拆分
查看>>
叶节点到根节点的路径_节点路径模块
查看>>
前端测试简介
查看>>
如何查找公共子字符串长度_如何在C中查找字符串的长度
查看>>
javascript运算符_JavaScript比较运算符
查看>>
字符串tostring_字符串toString()方法
查看>>
number.isnan_Number isNaN()方法
查看>>
虚拟dom_虚拟DOM
查看>>
vue组件引入scss变量_如何将SCSS与Vue.js单个文件组件一起使用
查看>>
开发人员,学习营销
查看>>
axios 请求node_使用Axios的Node中的HTTP请求
查看>>
setimmediate_了解setImmediate()
查看>>
git可视化工具使用_使用Go可视化您本地的Git贡献
查看>>
JavaScript中的call()和apply()
查看>>
node 发出ajax请求_使用Node发出HTTP请求
查看>>