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 -