视图

一.what(什么是视图?)

1.视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图所对应的数据并不真正地存储在视图中,而是存储在所引用的数据表中,视图的结构和数据是对数据表进行查询的结果。

2.根据创建视图时给定的条件,视图可以是一个数据表的一部分,也可以是多个基表的联合,它存储了要执行检索的查询语句的定义,以便在引用该视图时使用。


二.why(为什么要用视图?视图的优点)

1.简化数据操作:视图可以简化用户处理数据的方式。

2.着重于特定数据:不必要的数据或敏感数据可以不出现在视图中。

3.视图提供了一个简单而有效的安全机制,可以定制不同用户对数据的访问权限。

4.提供向后兼容性:视图使用户能够在表的架构更改时为表创建向后兼容接口。

5.自定义数据:视图允许用户以不同方式查看数据。

6.导出和导入数据:可使用视图将数据导出到其他应用程序。


三.how(视图的创建语法、删除、demo)

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name

[(alias[, alias]...)] 

AS subquery 

[WITH CHECK OPTION [CONSTRAINT constraint]] 

[WITH READ ONLY]

OR REPLACE :若所创建的试图已经存在,ORACLE自动重建该视图;

FORCE  :不管基表是否存在ORACLE都会自动创建该视图;

NOFORCE  :只有基表都存在ORACLE才会创建该视图:

alias :为视图产生的列定义的别名;

subquery    :一条完整的SELECT语句,可以在该语句中定义别名;

WITH CHECK  OPTION :插入或修改的数据行必须满足视图定义的约束;

WITH READ ONLY :该视图上不能进行任何DML操作。


CREATE  OR  REPLACE  VIEW  dept_sum_vw

(name,minsal,maxsal,avgsal)

AS

SELECT d.dname,min(e.sal),max(e.sal),avg(e.sal)

FROM emp e,dept d

WHERE  e.deptno=d.deptno

GROUP  BY  d.dname;


--给用户授权创建视图

-- grant create all view to zdgshr;      所有数据库都能创建视图的用户

grant create view to zdgshr;


--创建简单视图

create view temp

as

select * from zd_member_basic_info;

--测试

select * from temp where rownum=1;


--创建简单视图:只读

create or replace view temp1

as

select id,job_number,name,dept_id from zd_member_basic_info

with read only;

--测试

insert into temp1(id,job_number,name,dept_id) values(1,0,'张三',1300);

复制代码

复制代码

视图的删除:

            DROP VIEW  VIEW_NAME语句删除视图。

            删除视图的定义不影响基表中的数据。

            只有视图所有者和具备DROP VIEW权限的用户可以删除视图。

            视图被删除后,基于被删除视图的其他视图或应用将无效。

四、视图分为简单视图和复杂视图。

简单视图只从单表里获取数据;复杂视图从多表里获取数据。

简单视图不包含函数和数据组;复杂视图包含函数和数据组。

简单视图可以实现DML操作;复杂视图不可以。

create or replace view temp1 as select distinct name,job_number,dept_id from zd_member_basic_info  with read only;


delete from zd_member_basic_info where name='而过';

create or replace view temp

as

select * from zd_member_basic_info order by name;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值