概述:ORACLE 数据库是关系型数据库,同时也是面向对象关系型数据库,又称ORDBMS,因此,在 ORACLE 数据库中也有专属的 ORACLE 对象,主要有如下数据库对象:同义词 序列 表 表分区 视图 过程 索引。以下简单讲解同义词、序列、表分区、视图、索引
同义词 1、概念同义词是数据库方案对象的一个“别名”,经常用于简化对象访问和提高对象访问的安全性。
同义词并不占用实际存储空间,只在数据字典中保存了同义词的定义。
Oracle同义词有两种类型,分别是公用 Oracle 同义词与私有 Oracle 同义词。
2、问题select * from scott.emp;
当前登录的session是非scott用户,访问emp表时,必须指定schema.表名
3、解决:同义词创建公用同义词
create public synonym syn_emp for scott.emp;
通过访问同义词来简化对象的访问
select * from syn_emp;
4、创建同义词的语法create [or replace] [public] synonym sys_name
for [schema.]object_name
说明:
create:创建同义词
create or replace:没有则创建,有则替换
public:声明公用同义词,不写则为私有同义词
synonym:关键字
sys_name:用户创建同义词的名称,建议以sys_为前缀
for:关键字
schema:对象的集合,如包含tables, views, sequences, synonyms, indexes等;
一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema
object_name:对象名
eg1:公用同义词
create public synonym syn_emp for scott.emp;
select * from syn_emp;
eg2:私用同义词
create or replace synonym syn_pri_emp for scott.emp
select * from syn_pri_emp;
5、查看同义词查看当前用户创建的私有同义词
select * from user_synonyms;
查看当前用户创建的所有同义词
select * from all_synonyms where table_owner='SCOTT';
select * from dba_synonyms where table_owner='SCOTT';
6、删除同义词drop public synonym 公有同义词名称
drop synonym 私有同义词名称
7、注意事项1)用户必须拥有 Create public synonym 的系统权限才能创建公共同义词;只有Create any synonym 权限才能创建私有同义词
2)用户必须拥有同义词所定义对象的权限才能进行访问,同义词不代表权限
3)同义词不仅可以查询,还可以添加,删除,修改,但都作用于物理表
序列 1、概念