一、Oracle数据库对象
数据库对象是数据库的组成部分,常常用create命令进行创建,可以使用Alter命令修改,用drop执行删除操作。前面接触过的数据库对象有表、用户等。
今天将学习更多的oracle数据库对象:
1、 同义词:就是给数据库对象一个别名;
2、 序列:Oracle中实现增长的对象;
3、 视图:预定义的查询,作为表一样的查询使用,是一张虚拟表。
4、 索引:对数据库中的某些列进行排序,便于提高查询效率。
同义词
同义词(Synonym)是数据库对象的一个别名,oracle可以为表、视图、序列、过程、函数、程序包等指定一个别名。同义词有两种类型:
1、 私有同义词:拥有create synonym 权限的用户(包括非管理员用户)即可创建私有同义词,创建的私有同义词只能由当前用户使用;
2、 公有同义词:系统管理员可以创建公有同义词,公有同义词可以被所有用户访问。
语法结构:创建同义词
CREATE[OR REPLACE] [PUBLIC] SYSNONYM [schema.]synonym_name FOR [schema.]object_name
语法解析:
① CREATE [OR REPLACE:]表示在创建同义词时,如果该同义词已经存在,那么就用新创建的同义词代替旧同义词。
② PULBIC:创建公有同义词时使用的关键字,一般情况下不需要创建公有同义词。
③ Oracle中一个用户可以创建表、视图等多种数据库对象,一个用户和该用户下的所有数据库对象的集合称为Schema(中文称为模式或者方案),用户名就是Schema名。一个数据库对象的全称是:用户名.对象名,即schema.object_name。
案例一:创建一个用户XiaoMei,该用户拥有CONNECT角色和RESOURCE角色。为SCOTT用户的EMP表创建同义词,并通过同义词访问该EMP表。
1、 connsystem/manager@orcl;
2、 createuser xiaomei identified by xiaomei;
3、 grantconnect,resource,create synonym to xiaomei;
4、 connxiaomei/xiaomei@orcl;
5、 createsynonym myemp for scott.emp;(为scott.emp表创建私有同义词Myemp)
6、 select* from myemp;(提示表不存在,因为xiaomei用户没有权限)
7、 connscott/tiger@orcl;
8、 grantall on emp to xiaomei;(把EMP表的所有权限(增删改查)授予xiaomei用户)
9、 connxiaomei/xiaomei@orcl;
10、 select * from myemp;
语法结构:创建同义词
drop [public] synonym [schma.]synonym_name;