同义词是现有对象的一个别名,和 C++ 里面的typedef关键字很像。同义词都能简化SQL语句,隐藏对象的名称和所有者,也可以提供对对象的公共访问。 在Oracle中,同义词分为公有同义词和私有同义词。公有同义词可被所有数据库用户访问。私有同义词只能再其模式内访问,且不能与当前模式的对象同名。

CREATE  [PUBLIC] SYNONYM  [同义词名] FOR [对象名];

如果不写 PUBLIC 那创建的同义词就是私有同义词,写了 PUBLIC 就是公有同义词。

创建同义词需要权限

GRANT CREATE  [PUBLIC] SYNONYM TO [用户名]

删除同义词(删除同义词也是需要权限的)

DROP  [PUBLIC] SYNONYM  [同义词名];

替换同义词(要权限):

CREATE OR REPLACE SYNONYM  [新同义词名] FOR [对象名];

私有同义词,由于每个模式私有的,可以在不同模式中创建同名的私有同义词,互不影响;

-------创建表结构
create  table salary_tbl(employer_nm varchar(20),department varchar(20) not null,salary number not null,leader_nm varchar(20)
);
-----插入测试数据----
truncate table salary_tbl;
beginfor i in  1..100loopinsert into salary_tbl values('雇佣者'||i,'部门'||Mod(i,6),100*POWER(10000,i*0.01),'雇佣者'||Mod(i,6)); end loop;
end;
/
commit;
--------创建私有同义词---------
CREATE  SYNONYM  s_tbl FOR SALARY_TBL;
--------用私有同义词来查询-----------
select * from s_tbl s where s.employer_nm ='雇佣者1';
--------删除私有同义词----------
DROP   SYNONYM  s_tbl;

我们知道查找表信息可以用如下SQL: select * from tab; 那么这里 tab 是表名吗?

我可以查看对象表,来查找对象信息

select * from all_objects where object_name='TAB';

可以看见 TAB 这个对象在SYS里是一个视图,而在公共里是一个同义词,这里的TAB并不是一张表;

我们可以查看同义词信息:

select * from all_synonyms  where SYNONYM_NAME='TAB';

我们可以看见不管OWNER是 公共还是SYSTEM,TAB同义词对应的都是SYS模式(用户)下的TAB表;

select * from tab ; 是根据同义词查找 ,和查询表 select * from sys.tab; 是一样的

Oracle 原理: 公有同义词 和 私有同义词相关推荐

  1. oracle 公有、私有同义词

    文章目录 1. 同义词作用和含义 2. 创建同义词 3. 批量创建同义词 1. 同义词作用和含义   同义词是现有对象的一个别名,用于简化sql,隐藏对象的名称和所有者,提供对对象的公共访问: 同义词 ...

  2. 9、oracle数据库下的视图和同义词

    ORACLE下的视图和同义词 1.视图 视图就是一个查询的结果,可能包含一张表或者多张表的信息,创建视图其目的在于,便于查看表中的信息.视图只是在逻辑上存在. 1.1创建/修改视图 创建视图一定要有C ...

  3. mysql实现oracle的同义词_Oracle的同义词(synonyms)详解

    知识扩展:数据库对象 表.视图.序列.过程.函数.程序包,甚至其它同义词都可以创建同义词. 1.同义词:私有同义词.公有同义词. 私有同义词只能被当前模式的用户访问.私有同义词名称不可与当前模式的对象 ...

  4. oracle 查询公有同义词,Oracle序列(sequence),OracleRUNNUM和Oracle同义词(synonyms)

    一团网资讯 一团资讯 > oracle > Oracle序列(sequence),OracleRUNNUM和Oracle同义词(synonyms)... Oracle序列(sequence ...

  5. oracle中private同义词和public同义词

    项目中遇到,遂从网上搜索了下,觉得如下解释较为通俗易懂: 假设oracle有以下两个用户: admin , visitor 我们在admin下建立了 testtable 这个表,并且对visitor用 ...

  6. oracle只读权限 同义词,权限的同义词,欣赏和权限的近义词是什么

    欣赏和权限的近义词是什么 欣赏的近义词--玩赏.观赏.赏识.鉴赏 权限的近义词--范围,.权势.权位.权责 如何给同义词授权 如果在bai用户agmtadmin下创建了du一个表TC_EP_SPLIT ...

  7. ORACLE ---注释,默认值,同义词

    ORACLE -注释,默认值,同义词 注释 对表本身或表中的每个字段添加一段解释说明,使得初次接触该表的开发人员能尽快了解该表. 体现: 1.表结构描述中 2.查询结果某行数据纵向展示时 创建注释: ...

  8. 达梦数据库常用SQL之公共同义词改为私有同义词

    有些系统前期数据库设计不够规范,后期的时候有需求需要将属于指定用户的公共同义词修改为该用户的私有同义词,使用以下存储过程即可实现,使用时修改TABLE_OWNER条件为要修改的模式名即可 DECLAR ...

  9. mysql公有库和私有库_带有公有和私有子网的 VPC (NAT) - Amazon Virtual Private Cloud

    带有公有和私有子网的 VPC (NAT) 这个场景的配置包括一个有公有子网和私有子网的 Virtual Private Cloud (VPC).如果您希望运行面向公众的 Web 应用程序,并同时保留不 ...

最新文章

  1. 使用VS2010编译MongoDB C++驱动详解
  2. Angular Component template函数执行上下文的对象
  3. JavaFX鼠标移动事件
  4. eclipse代码发布到服务器(Tomcat)出现乱码现象解决方法
  5. 移动电子商务,“移动”至生活
  6. Volley源码学习1--volley结构图
  7. 英语总结系列(二十二):Baby偶遇GCT
  8. ObjectC----NSObject常用方法和OC反射机制
  9. 教育部更新学科目录!考研(与在读)的同学都需要知道!
  10. GitHub开源项目学习 电商系统Mall (一) Mall简介
  11. html邮件的排版问题
  12. mac safari java插件_如果提示您信任或更新 Mac 上 Safari 浏览器中的插件
  13. 安装oh my zsh后出现的目录权限问题
  14. 三菱fx5u plc项目模板程序(含触摸屏程序) 程序注释全面,用的三菱fx5u系列plc和威纶触摸屏
  15. 统信国产linux操作系统——虚拟机安装
  16. android实现向右滑动返回功能
  17. android 输入法悬浮,专为大屏手机设计,谷歌Gboard输入法新增悬浮键盘功能
  18. W800/W801学习记录网络部分(一):WIFI的扫描和连接
  19. java写入文件怎么换行,经验分享
  20. JAVALM美食推荐网计算机毕业设计Mybatis+系统+数据库+调试部署

热门文章

  1. [Android]Space控件的应用场景
  2. linux下file命令使用技巧
  3. 探讨Redhat的开源“成功之道”
  4. 安全源于细节:云环境下如何保证应用安全
  5. Mysql-Proxy自定义守护进程
  6. Linux下,安装配置Weblogic
  7. 在Synaptic Package Manager 加载USB 接口的CD-ROM
  8. 设计模式-策略模式和工厂模式结合使用
  9. linux shell 判断文件是否存在
  10. k8s修改kube-apiserver的service-node-port-range端口范围