首页 > 代码库 > SQL基础--同义词
SQL基础--同义词
同义词的概念:
同义词是Oracle对象的别名,使用同义词访问相同的对象
可以为表、视图、存储过程、函数或另一同义词等对象创建同义词
方便访问其它用户的对象,隐藏了对象的身份
缩短对象名字的长度
同义词创建语法:
CREATE [PUBLIC] SYNONYM synonym_name FOR object;
创建和删除同义词的权限:
- CREATE ANY SYNONYM
- CREATE PUBLIC SYNONYM
- DROP PUBLIC SYNONYM
- DROP ANY SYNONYM
创建同义词举例:
SQL> conn / as sysdba 已连接。 SQL> grant create public synonym to scott; 授权成功。 SQL> grant create any synonym to scott; 授权成功。 SQL> conn scott/tiger 已连接。 SQL> create public synonym mydept for dept; ##创建公有同义词,其它用户也可以访问 同义词已创建。 SQL> create synonym mydept for dept; ##创建私有同义词,只有Scott才可以访问,与公共同义词同名,并没有报错 同义词已创建。
删除同义词:
SQL> drop public synonym mydept; 同义词已删除。 SQL> select * from mydept; ##删除共有同义词,私有的还在 DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON SQL> drop synonym mydept; 同义词已删除。
SQL> select * from mydept; select * from mydept * 第 1 行出现错误: ORA-00942: 表或视图不存在
查看同义词视图:
SQL> select * from user_synonyms; SYNONYM_NAME TABLE_OWNER TABLE_NAME ------------------------------ ------------------------------ ------------------------------ DB_LINK ------------------------------------------------------------------------------------------------------------------------ MYDEPT SCOTT DEPT SQL> conn / as sysdba 已连接。 SQL> SELECT synonym_name,table_owner,table_name FROM dba_synonyms WHERE table_name = ‘DEPT‘; SYNONYM_NAME TABLE_OWNER TABLE_NAME ------------------------------ ------------------------------ ------------------------------ MYDEPT SCOTT DEPT MYDEPT SCOTT DEPT
注意:创建的公共同义词没有出现在user_synonyms视图中
SQL基础--同义词
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。