您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页数据库中的同义词synonym

数据库中的同义词synonym

来源:爱问旅游网
数据库中的同义词synonym

⼀、Oracle数据只有⼀个实例(简单理解就是Oracle 只能建⽴⼀个数据库,不像MySQL,它下⾯可以创建N个库),那么Oracle是根据⽤户灵活去管理的;这点读起来、理解

起来也不那么难,但是除⾮⾃⼰亲⾃实现⼀把才理解深⼊点,刚接触数据库可能不是很理解这些;

⼆、Oracle中可以建⽴多个⽤户,那么这些⽤户刚建⽴是得授权的,不让没有权限做任何事情,(举个栗⼦:⽤户 ‘AA’ 是授权的DBA⽤户,此⽤户下⾯有 N 张表,如果再创建

⼀个⽤户 “BB” ,那么 “BB” 是没有权限读取 “AA” 中表的,有⼈可能就会说给他授权不就⾏了么,给 “BB” 授予超级权限,抱歉,那也不⾏,你同样么有机会访问 “AA”

中的表的,你虽然授予了超级权限,那是在你名下的,在 “AA” 起不了作⽤),是不是很是揪⼼,同⼀个库下两个 超级⽤户 还不能访问。三、是不是在 “BB” ⽤户下在把 “AA” 下的表 复制⼀遍不就好了,没错,这样也能实现,但是这样会浪费很多资源,⽽且不能同步数据;这种情况下 同义词 就有⽤武之地了,

其实 同义词 也相当于⼀个视图 可以这个么理解,可以进⾏对表的 增删改查,(省资源,数据同步);

四、注意事项

0》接上⾯的举例⼦:新建的⽤户 “BB” 要在不复制资源的请款下建⽴⼀个同义词 要可以对 “AA” 下的表 操作(除了删除)

建⽴:create 【public】 synonym 同义词名称(⼀般可以与表名不同,这样不容易混淆) for AA.table_name;--在当前⽤户下建⽴⼀个同义词(去同义“AA”中的表:table_name,public的是可选参数,本⼈建议尽量建⽴公⽤的 同义词)

删除:DROP 【public】 SYNONYM 同义词名称; ---------此处特别注意 关键字 public 的存在--------;

查看:select * from user_synonyms sy where sy.synonym_name ='A_CODEMAPPING'; --查看私有的同义词,⾃⼰看到⾃⼰创建的;

select * from all_synonyms sy where sy.synonym_name ='A_CODEMAPPING'; --可以查看到 某某创建的 公共的 同义词 参看信息中包括,同义词拥有者,表拥有者,是否public的等信息; 1》同义词 分为私有的 和公共的两种; 私有的:

也只有 本⽤户使⽤,包括别的⽤户查不到 ⽤户 “BB” 有这个同义词(这点很重哟奥); 共有的:

可以被其它的任何⽤户使⽤, 也可以被⼈家查到,看到这个同义词,当然最重要的也可以被别的⽤户删除;

什么是同义词

同义词相当于是对象的⼩名,作⽤是缩短对象的长度,便于书写与访问。同义词的创建

假设有表s_student如图所⽰:

为表t_student创建同义词stdcreate synonym std for t_student

此时使⽤同义词std查询表t_student中所有数据select * from std 查询结果:

删除同义词

drop synonym std

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务