




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
查看所有同义词:select * from dba_synonyms删除同义词使用DROP SYNONYM语句删除不再需要的同义词 要想删除私有同义词 就省略 PUBLIC 关键字 要想删除公共同义词就要包括PUBLIC 关键字DROP SYNONYM emp; -删除名为emp 的私有同义词DROP PUBLIC SYNONYM public_emp; -删除名为public_emp的公有同义词select * from emp;等用于select * from abc;建立共有的同义词SQL如果用户的等级不够建立public同义词,可以在system下授权:grant create any synonym to scott;grant create public synonym to scott;取消授权:revoke create any synoym from scott;revoke create public synoym from scott;取消同义词:drop public synonym abc;授权取消同义词:grant dorp public synonym to scott;取消授权:revoke drop public synonym to scott;15.9 引入同义词(Synonym)的原因在一些商业数据库中,有时信息系统的设计或开发者为了增加易读性,故意定义一些很长的表名(也可能是其它的对象)。这样虽然增加了易读性,但在引用这些表 或对象时就不那么方便,也容易产生输入错误。另外在实际的商业公司里,一些用户觉得某一个对象名有意义也很好记,但另一些用户可能觉得另一个名字更有意 义。ORACLE系统提供的同义词(Synonym)就是用来解决以上的难题的。设想一下在您的日常工作中您每天都要使用supplier表许多次,而且您的英文打字的水平并不高。在这种情形下,您就可以借助于同义词(Synonym)来帮助您提高生产力。15.10 怎样创建同义词(Synonym)现在您就可以使用如下的CREATE SYNONYM语句(例15-38)为表supplier建了一个同义词(别名)s。例15-38SQL CREATE SYNONYM s2 FOR supplier;例15-38结果同义词已创建。现在您就可以把同义词(别名)s当成supplier来使用。您可以使用如下的查寻语句(例15-39)来验证这一点。例15-39SQL SELECT *2 FROM s;例15-39结果S_CODE SNAME CONTACT PHONE FAX - - - - -2000 仙客来百货 张根发 4444944 44448442010 心太软小商品 石铁心 1741741食为天餐具 金元宝 1671671 16716742032 食为先餐具 陆合彩 1681684 1681684那您可能会问,您怎样才能知道您到底拥有哪些同义词(Synonym)呢?还记得数据字典user_objects吗?既然同义词(Synonym)是对象,它们在这个数据字典中就一定有记载。因此您可以使用如下的查寻语句(例 15-41)从数据字典user_objects中得到您所拥有的全部同义词(Synonym)的信息。当然为了使SQL*PLUS的显示输出更加清晰您 应该先使用如下的SQL*PLUS格式化命令(例15-40)。例15-40SQL col object_name for a20例15-41SQL SELECT object_name, object_type, created, status2 FROM user_objects3 WHERE object_type LIKE SYN%;例15-41结果OBJECT_NAME OBJECT_TYPE CREATED STATUS- - - -S SYNONYM 28-4月 -03 VALID 例15-41显示的结果表明:在您的模式(用户)下只有一个同义词(Synonym),那就是您刚刚建立的同义词(Synonym)s。但是例15-41显示的结果并没有告诉您这个同义词(Synonym)到底是基于那个表的及表的主人是谁。如果您有一个这样同义词(Synonym)时, 这方面的信息也许就显得特别重要了。您可以使用如下的查寻语句(例15-43)从数据字典user_synonyms中得到这方面的信息。当然为了使 SQL*PLUS的显示输出更加清晰您应该先使用如下的SQL*PLUS格式化命令(例15-42)。例15-42SQL col table_owner for a12SQL col table_name for a12例15-43SQL SELECT synonym_name, table_owner, table_name2 FROM user_synonyms;例15-43结果SYNONYM_NAME TABLE_OWNER TABLE_NAME- - -S SCOTT SUPPLIER 例15-43显示的结果表明:在您的模式(用户)下只有一个同义词(Synonym),那就是您刚刚建立的同义词(Synonym)s。该同义词(Synonym)是基于表supplier,而这个表的主人是SCOTT。创建同义词(Synonym)的语句格式如下:CREATE PUBLIC SYNONYM 同义词的名字FOR 对象名;其中: PUBLIC: 系统中所有的用户都可以访问所创建的同义词 同义词的名字: 所创建的同义词的名字 对象名: 创建的同义词所基于的对象名在创建同义词时要注意的事项: 所基于的对象不能包含在任何软件包中 一个私有的同义词不能与任何该用户下的其它对象重名您刚刚创建的同义词(Synonym)s是一个私有的同义词,即只能在您的用户(SCOTT)下直接引用,如果其它用户引用它就必需冠以用户名.(既 scott.s的方式引用)。这样作很不方便。如果您所建的表supplier是一个所有用户共享并经常使用的表,您应该怎样处理这一问题呢?15.11 创建公用同义词(Synonym)您可以为supplier表创建一个公用同义词(Synonym)。为了演示方便,您应该从当前的SCOTT用户切换到另一个用户下,如SYSTEM。您可以使用如下的SQL*PLUS命令(例15-44)来完成用户的切换。例15-44SQL CONNECT SYSTEM/MANAGER例15-44结果已连接。 现在您如果使用如下的查寻语句(例15-45),您是不会得到您想要的信息的。例15-45SQL SELECT *2 FROM s;例15-45结果FROM s * ERROR 位于第 2 行: ORA-00942: 表或视图不存在您如果再使用如下的查寻语句(例15-46),您也同样不会得到您想要的信息的。例15-46SQL SELECT *2 FROM supplier;例15-46结果FROM supplier * ERROR 位于第 2 行: ORA-00942: 表或视图不存在如果您在同义词(Synonym)s之前冠以用户名.(scott.),您就可以得到您所需要的信息了。如下面的查寻语句(例15-47)。例15-47SQL SELECT *2 FROM scott.s;例15-47结果S_CODE SNAME CONTACT PHONE FAX - - - - -2000 仙客来百货 张根发 4444944 44448442010 心太软小商品 石铁心 1741741食为天餐具 金元宝 1671671 16716742032 食为先餐具 陆合彩 1681684 1681684由于其它用户在引用这一同义词(Synonym)s时必须冠以您的用户名(.).,这样很不方便,而且也容易产生输入错误,所以您可以使用如下的DDL语句(例15-48)为scott用户下的supplier建立一个公用的同义词(Synonym)ss。例15-48SQL CREATE PUBLIC SYNONYM ss2 FOR scott.supplier;例15-48结果同义词已创建。现在您就可以利用您刚刚创建的公用的同义词(Synonym)ss来获得您所希望得到的信息。您可以使用如下的查寻语句(例15-49)。例15-49SQL SELECT *2 FROM ss;例15-49结果S_CODE SNAME CONTACT PHONE FAX - - - - -2000 仙客来百货 张根发 4444944 44448442010 心太软小商品 石铁心 1741741食为天餐具 金元宝 1671671 16716742032 食为先餐具 陆合彩 1681684 1681684您也可能会问,其它用户是否也可以使用同样的方法访问同义词(Synonym)ss。答案是肯定的。如果您还有疑问的话,您可以试着以如下的SQL*PLUS命令(例15-50)以SYS用户登录进入ORACLE数据库。例15-50SQL CONNECT SYS/ORACLE AS SYSDBA;例15-50结果已连接。 现在您就可以利用公共同义词(Synonym)ss来获得您所希望得到的信息。您可以使用如下的查寻语句(例15-51)。例15-51SQL SELECT *2 FROM ss;例15-51结果S_CODE SNAME CONTACT PHONE FAX - - - - -2000 仙客来百货 张根发 4444944 44448442010 心太软小商品 石铁心 1741741食为天餐具 金元宝 1671671 16716742032 食为先餐具 陆合彩 1681684 1681684ORACLE并没有提供修改同义词(Synonym)的命令。如果您要修改某一同义词(Synonym)的话,您要先把它删除掉,之后再重新建立这个同义词(Synonym)。15.12 删除同义词(Synonym)如果经过了一段时间,您发现同义词(Synonym)s已经没什么用处了,您就可以使用如下的DDL语句(例15-53)将它删除掉。不过在这之前您可能得先使用如下的SQL*PLUS命令(例15-52)重新注册到SCOTT用户下。例15-52SQL CONNECT SCOTT/TIGER例15-52结果已连接。 例15-53SQL DROP SYNONYM s;例15-53结果同义词已丢弃。虽然例15-53结果已经显示:“同义词已丢弃。”,但是为了谨慎起见,您还是应该使用如下的查寻语句(例15-54)查看一下数据字典user_objects。例15-54SQL SELECT object_name, object_type, created, status2 FROM user_objects3 WHERE object_type LIKE SYN%;例15-54结果未选定行 或者您应该使用如下的查寻语句
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初二班主任个人述职报告范文模板-1
- 备战2023年高考地理专题复习新题典题精练06-水循环(原卷版)
- 2025年陶瓷生产加工机械项目合作计划书
- 基于大数据的教育政策分析与调整
- 教育心理学在体育训练中的应用-运动员潜能的挖掘
- 教育行业品牌建设与精准营销手段
- 创新教育新媒体材料的应用与思考
- 教育大数据分析助力智慧校园建设
- 儿童保护法案与教育法规的关联分析
- 家庭教育中的教育心理学激发孩子潜能的技巧
- 劳动合同(通用版)
- 英语口语 购物课件
- 膀胱镜检查记录
- 钢板仓施工方案
- DBJ50-112-2016 现浇混凝土桥梁梁柱式模板支撑架安全技术规范
- 北京福赛尔V6891、V6851控制器(联动型)的调试
- 中航信离港系统培训(3)
- 汽车维修安全生产管理制度大全
- 晋江市劳动合同书
- 中国银行_境外汇款申请书样板(最新版)-带中行行标
- EVA交联度实验操作规程
评论
0/150
提交评论