同义词(synonym)
来源:互联网 发布:mac桌面的东西都不见了 编辑:程序博客网 时间:2024/04/30 07:02
1.为啥要用同义词:
同义词,顾名思义就是两个词的意思一样,可以互相替换.那它的作用有哪些呢:
a一个最明显的目的就是简化sql.如果某个数据库对象的名字太长了,可以创建一个短一点的同义词.就相当于是缩写呗.
b.另外一个目的是隐藏一些对象的信息.比如查找另一个 schema中的某个表,需要在表名前加schema名做为前缀.如果创建一个同义词就可以隐藏schema信息.
2.怎么创建同义词.
语法:CREATE [OR REPLACE] [PUBLIC] SYNONYM synonym_name FOR [schema.]object
1.创建私有同义词:
例如:CREATE SYNONYM arwen FOR table_of_arwen
这样使用select * from arwen或select * from table_of_arwen是一样的.
删除同义词:DROP SYNOYM arwen.
注意:私有同义词只有创建它的用户自己可以用.如果其他schema要用必须得加创建者schema为前缀.这和其他对象是一样的.
2.创建公共同义词:
CREATE PUBLIC SYNONYM arwen FOR table_of_arwen
所有的schema都能使用公共同义词.比如schema scott访问schema arwen的表table_of_arwen就可以用select * from arwen
有些人可能会奇怪这种情况为啥就不用到schema做前缀了.可能系统默认加了吧.
所以CREATE PUBLIC SYNONYM arwen FOR table_of_arwen或CREATE PUBLIC SYNONYM arwen FOR arwen.table_of_arwen是等效的.
其他schema都能用arwen去查找.
注意:如果其他schema没有权限查找表table_of_arwen则 也不能使用它的同义词去查找的.
3.关于错误:同义词转换不再有效.
当创建同义词时不会检查同义词代表的对象是否存在,都会成功创建.比如CREATE PUBLIC SYNONYM arwen FOR no_table_exist
假如不存在一个表叫no_table_exist或者其他数据库对象叫这名.
则SELECT * FROM arwen时就会有错误提示:同义词转换不再有效.当然如果本来有那表后面删除了也会有同样的错误.
3.和同义词类似的别名
oracle里面还有个概念叫别名.它和同义词功能类似.只不过使用范围很小.主要用在一个sql语句中,只能临时起作用.像临时变量一样.
例如:
SELECT emp.ename,bonus.sal FROM emp ,bonus where emp.ename = bonus.ename
我们可以给emp取一个别名e,bonus取b列也取别名则查询语句如下
SELECT e.ename AS myname,b.sal AS mysal FROM emp e,bonus b WHERE e.ename = b.ename
里面的关键字AS是可选的,如果去掉也会实现同样的功能.在列中可用AS,但给表取别名是不能加的.
- 同义词synonym
- 同义词(synonym)
- 同义词 synonym
- 同义词synonym创建授权
- 序列(SEQUENCE)、同义词(SYNONYM)
- oracle synonym---同义词
- Oracle 同义词synonym 学习
- oracle 同义词(synonym)
- Oracle 创建同义词 synonym
- Oracle 同义词(synonym) 简介
- oracle 同义词(synonym)
- ORACLE SYNONYM/同义词
- solr 同义词 synonym
- oracle-synonym(同义词)
- 浅析同义词--Synonym
- Oracle之同义词(SYNONYM)
- Oracle中的同义词synonym
- oracle同义词创建(synonym)
- 《IIS常用命令》
- 现在可用:2011年10月更新的Windows Azure Platform Training Kit
- 程序员面试100题之三:不用+、-、×、÷数字运算符做加法
- Linux┊详解udev
- oracle 写一致性的测试
- 同义词(synonym)
- SQL SERVER数据库修复经验
- 字符串中单引号的应用
- Convert 10g Single-Instance database to 10g RAC
- net 获取Excel所有工作表名称
- 《计算机命令全集》
- 自定义Activity堆栈,不同版本中程序的退出
- SQL SERVER数据库复制中出现logread代理失败的错误日志获取及分析办法
- PHP SPL详解