2024年6月6日发(作者:)
《Oracle数据库应用 》理论课
数据库对象
本章技能目标
使用同义词
使用序列
创建视图
创建索引
1. 数据库对象
Oracle 数据库对象又称模式对象。数据库对象是逻辑结构的集合,最基本的数据库对象是表。其他数据库
对象包括:同义词,序列,视图,索引。下面我们依次讲解这几个数据库对象的使用。
2. 同义词
同义词是数据库对象的一个别名,这些对象可以是表,视图,序列,过程,函数,程序包,甚
至其它同义词,通过使用同义词,用户可以访问其它模式的数据库对象而无需指定模式前缀,
例如用户USER1要访问用户USER2的表EMP,必须使用,那么USER1就可以使
用同义词像访问自己的表一样引用了。
同义词有以下用途:
简化SQL语句
隐藏对象的名称和所有者
提供对对象的公共访问
为分布式数据库德远程对象提供了位置透明性
同义词允许应用程序访问数据库对象,不论那个用户或哪个数据库拥有该对象。但是同义词不
能代替权限,在使用同义词之前确保用户已得到访问对象的权限。
可以通过同义词执行SELECT,INSERT,UPDATE,DELETE,LOCK TABLE ,GRANT和REVOKE
等语句。同义词只是表的一个别名,因此对它的操作都会影响到表。
同义词共有两种类型:
公有同义词。
私有同义词。
2.1 私有同义词和公有同义词
第4章 数据库对象
私有同义词只能在其模式内访问,且不能与当前模式的对象同名。
要在自身的模式创建私有同义词,用户必须拥有CREATE SYNONYM 系统权限。要在其
它用户模式的创建私有同义词,用户必须CREATE ANY SYNONYM系统权限.。
创建私有同义词语法如下:
Create [OR REPLACE] SYNONYM [schema.]synonym_name
FOR [schema.]object_name;
其中:
OR REPLACE表示在同义词存在的情况下替换该同义词。
synonym_name表示要创建的同义词的名称。
object_name指定要为之创建同义词的对象的名称。
例1:
假定两个用户模式:ACCP和SCOTT ,SCOTT用户拥有EMP表,ACCP 用户需要频繁引
用EMP表,为了简化SQL语句,需要为ACCP用户创建一个同义词。首先,应该给ACCP
用户授予访问EMP表的权限,以SCOTT用户登录数据库,执行以下命令。
SQL>GRANT ALL ON EMP TO ACCP;
再以ACCP用户身份登录数据库,执行以下命令。
SQL>CREATE SYNONYM EMP FOR ;
如果上述命令成功执行,将显示消息”同义词已创建”,现在,ACCP用户可以使用下面的语句访问
SCOTT用户的EMP表了。
SQL>SELECT * FROM EMP;
公有同义词可被所有的数据库用户访问,公有同义词可以隐藏基表的身份,并降低SQL语句的复杂
性。要创建公有同义词,用户必须拥有CREATE PUBLIC SYNONYM系统权限。
创建公有同义词语法如下:
Create PUBLIC SYNONYM synonym_name
FOR [schema.]object_name;
例2演示创建公有同义词
例2:
create public synonym emp_syn from ;
如果用户拥有足够权限的话,就可以创建公有同义词。
例2演示了如何创建一个名为emp_syn的公有同义词。其他模式下的用户可通过访问公有同义词
emp_syn来引用该表。
系统会在安装的时候创建一些数据字典公有的同义词,如名为”TAB”的同义词可以用来查询用户所拥
有的表和视图对象。为了清楚的理解本地对象和公有对象的概念。
例3:
登录到SQL*PLUS,查询公有同义词TAB;
SELECT * FROM TAB;
上述命令显示当前用户拥有的表和视图的列表。
下面创建一个名为”TAB”的表,如下:
2
- 2 -


发布评论