ORACLE下的视图和同义词
1.视图
视图就是一个查询的结果,可能包含一张表或者多张表的信息,创建视图其目的在于,便于查看表中的信息。视图只是在逻辑上存在。
1.1创建/修改视图
创建视图一定要有CREATE VIEW权限,基本语法为:
creare view 视图名 AS -- 创建视图 CREATE VIEW view_name AS SELECT * FROM dept WHERE deptno<20; -- 修改视图 CREATE OR REPLACE VIEW view_name AS SELECT * FROM dept WHERE deptno<20; -- 去除视图的相关约束 |
1.2使用视图
查看视图
-- 查看所有视图 |
1.3 删除视图
DROP VIEW 视图名 |
2.同义词
同义词是现有对象的一个别名,用于简化sql语句、隐藏对象的名称和所有者、提供对对象的公共访问。同义词有私有同义词和公有同义词,公有同义词可被所有的数据库用户访问,私有同义词只能在其模式(所属用户)内访问,且不能与当前模式的对象同名。举个例子:
-- 查看所有表 select * from table --- 查看当前用户下的表 select * from tab 此处的tab就是一个同义词 |
2.1 创建/修改同义词
创建同义词必须具有CREATE [PUBLIC] SYNONYM权限
CREATE SYNONYM 同义词名 FOR 视图名; --- 创建私有同义词 create synonym syn_emp for emp; --- 查看同义词 select * from syn_emp; --- 创建共有同义词 create public synonym syn_dept for dept; -- 用户没有访问基表的权限,如果为基表创建了共有同义词,那么依然看不到表信息 创建或替换现有同义词 create or replace synonym emp_syn for scott.emp; |
2.2删除同义词
--- 删除共有同义词 drop public synonym syn_dept; --- 删除私有同义词 drop synonym syn_dept; |
2.3 使用同义词
多用于查询操作中,类似别名,多用于分布式数据库中
SELECT * FROM 同义词; |